#include <iostream>
class foo
{
public:
void fn();
void fn2();
private:
void check_invariants();
int i = 2; // must be between 0 and 5
};
void foo::check_invariants()
{
if (i > 5 || i < 0)
throw("Oops");
}
void foo::fn()
{
// do stuff
check_invariants();
}
void foo::fn2()
{
// do stuff
check_invariants();
}
int main() {
foo f;
f.fn();
f.fn2();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgZm9vCnsKcHVibGljOgogICAgdm9pZCBmbigpOwogICAgdm9pZCBmbjIoKTsKcHJpdmF0ZToKCXZvaWQgY2hlY2tfaW52YXJpYW50cygpOwogICAgaW50IGkgPSAyOyAvLyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNQp9OwoKdm9pZCBmb286OmNoZWNrX2ludmFyaWFudHMoKQp7CglpZiAoaSA+IDUgfHwgaSA8IDApCgkgICAgdGhyb3coIk9vcHMiKTsKfQoKdm9pZCBmb286OmZuKCkKewoJLy8gZG8gc3R1ZmYKCWNoZWNrX2ludmFyaWFudHMoKTsKfQoKdm9pZCBmb286OmZuMigpCnsKCS8vIGRvIHN0dWZmCgljaGVja19pbnZhcmlhbnRzKCk7Cn0KCmludCBtYWluKCkgewogICAgZm9vIGY7CiAgICBmLmZuKCk7CiAgICBmLmZuMigpOwoJcmV0dXJuIDA7Cn0=