#include <iostream>
class StaticClassData {
int *pointer, value;
public:
StaticClassData(): pointer(&value) {}
void add(int i) {
std::cout << "Hello, this is " << this << std::endl;
value = i;
std::cout << "I'm fine" << std::endl;
*pointer = i;
std::cout << "You never read this text" << std::endl;
}
};
class SomeClass {
struct StaticConstructor {
StaticConstructor(){ storage.add(1); }
};
static StaticConstructor constructor;
static StaticClassData storage;
};
StaticClassData SomeClass::storage;
SomeClass::StaticConstructor SomeClass::constructor;
int main(){}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgU3RhdGljQ2xhc3NEYXRhIHsKICBpbnQgKnBvaW50ZXIsIHZhbHVlOwoKcHVibGljOgogIFN0YXRpY0NsYXNzRGF0YSgpOiBwb2ludGVyKCZ2YWx1ZSkge30KICAKICB2b2lkIGFkZChpbnQgaSkgewogICAgc3RkOjpjb3V0IDw8ICJIZWxsbywgdGhpcyBpcyAiIDw8IHRoaXMgPDwgc3RkOjplbmRsOwogICAgdmFsdWUgPSBpOwogICAgc3RkOjpjb3V0IDw8ICJJJ20gZmluZSIgPDwgc3RkOjplbmRsOwogICAgKnBvaW50ZXIgPSBpOwogICAgc3RkOjpjb3V0IDw8ICJZb3UgbmV2ZXIgcmVhZCB0aGlzIHRleHQiIDw8IHN0ZDo6ZW5kbDsKICB9Cn07CgpjbGFzcyBTb21lQ2xhc3MgewogIHN0cnVjdCBTdGF0aWNDb25zdHJ1Y3RvciB7CiAgICBTdGF0aWNDb25zdHJ1Y3RvcigpeyBzdG9yYWdlLmFkZCgxKTsgfQogIH07CiAgCiAgc3RhdGljIFN0YXRpY0NvbnN0cnVjdG9yIGNvbnN0cnVjdG9yOwogIHN0YXRpYyBTdGF0aWNDbGFzc0RhdGEgc3RvcmFnZTsKfTsKClN0YXRpY0NsYXNzRGF0YSBTb21lQ2xhc3M6OnN0b3JhZ2U7ClNvbWVDbGFzczo6U3RhdGljQ29uc3RydWN0b3IgU29tZUNsYXNzOjpjb25zdHJ1Y3RvcjsKCmludCBtYWluKCl7fQ==