#include <iostream>
using namespace std;
bool print(const char* msg)
{
cout << msg << endl;
return true;
}
bool global = print("global");
static bool static_global = print("static_global");
struct Foo{
Foo(const char* msg) { print(msg); }
void method(){
bool local = print("local");
static bool static_local = print("static_local");
static Foo local_foo("local_foo");
}
};
static Foo foo("global_foo");
int main() {
print("main begin >");
foo.method();
foo.method();
print("< main end");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBwcmludChjb25zdCBjaGFyKiBtc2cpCnsKCWNvdXQgPDwgbXNnIDw8IGVuZGw7CgkKCXJldHVybiB0cnVlOwp9Cgpib29sIGdsb2JhbCA9IHByaW50KCJnbG9iYWwiKTsKc3RhdGljIGJvb2wgc3RhdGljX2dsb2JhbCA9IHByaW50KCJzdGF0aWNfZ2xvYmFsIik7CgpzdHJ1Y3QgRm9vewoJRm9vKGNvbnN0IGNoYXIqIG1zZykgeyBwcmludChtc2cpOyB9Cgl2b2lkIG1ldGhvZCgpewoJCWJvb2wgbG9jYWwgPSBwcmludCgibG9jYWwiKTsKCQlzdGF0aWMgYm9vbCBzdGF0aWNfbG9jYWwgPSBwcmludCgic3RhdGljX2xvY2FsIik7CgkJc3RhdGljIEZvbyBsb2NhbF9mb28oImxvY2FsX2ZvbyIpOwoJfQp9OwoKc3RhdGljIEZvbyBmb28oImdsb2JhbF9mb28iKTsKCmludCBtYWluKCkgewoJcHJpbnQoIm1haW4gYmVnaW4gPiIpOwoJZm9vLm1ldGhvZCgpOwoJZm9vLm1ldGhvZCgpOwoJcHJpbnQoIjwgbWFpbiBlbmQiKTsKCXJldHVybiAwOwp9