#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(new StaticClassData)*/{ storage.add(1); }
StaticClassData storage;
};
static StaticConstructor constructor;
// static StaticClassData storage;
};
//StaticClassData SomeClass::storage;
SomeClass::StaticConstructor SomeClass::constructor;
int main(){}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgU3RhdGljQ2xhc3NEYXRhIHsKICBpbnQgKnBvaW50ZXIsIHZhbHVlOwoKcHVibGljOgogIFN0YXRpY0NsYXNzRGF0YSgpOiBwb2ludGVyKCZ2YWx1ZSkge30KICAKICB2b2lkIGFkZChpbnQgaSkgewogICAgc3RkOjpjb3V0IDw8ICJIZWxsbywgdGhpcyBpcyAiIDw8IHRoaXMgPDwgc3RkOjplbmRsOwogICAgdmFsdWUgPSBpOwogICAgc3RkOjpjb3V0IDw8ICJJJ20gZmluZSIgPDwgc3RkOjplbmRsOwogICAgKnBvaW50ZXIgPSBpOwogICAgc3RkOjpjb3V0IDw8ICJZb3UgbmV2ZXIgcmVhZCB0aGlzIHRleHQiIDw8IHN0ZDo6ZW5kbDsKICB9Cn07CgpjbGFzcyBTb21lQ2xhc3MgewogIHN0cnVjdCBTdGF0aWNDb25zdHJ1Y3RvciB7CiAgICBTdGF0aWNDb25zdHJ1Y3RvcigpIC8qOiBzdG9yYWdlKG5ldyBTdGF0aWNDbGFzc0RhdGEpKi97IHN0b3JhZ2UuYWRkKDEpOyB9CiAgICBTdGF0aWNDbGFzc0RhdGEgc3RvcmFnZTsKICB9OwogIAogIHN0YXRpYyBTdGF0aWNDb25zdHJ1Y3RvciBjb25zdHJ1Y3RvcjsKIC8vIHN0YXRpYyBTdGF0aWNDbGFzc0RhdGEgc3RvcmFnZTsKfTsKCi8vU3RhdGljQ2xhc3NEYXRhIFNvbWVDbGFzczo6c3RvcmFnZTsKU29tZUNsYXNzOjpTdGF0aWNDb25zdHJ1Y3RvciBTb21lQ2xhc3M6OmNvbnN0cnVjdG9yOwoKaW50IG1haW4oKXt9