fork(1) download
  1. #include <iostream>
  2.  
  3. class StaticClassData {
  4. int *pointer, value;
  5.  
  6. public:
  7. StaticClassData(): pointer(&value) {}
  8.  
  9. void add(int i) {
  10. std::cout << "Hello, this is " << this << std::endl;
  11. value = i;
  12. std::cout << "I'm fine" << std::endl;
  13. *pointer = i;
  14. std::cout << "You never read this text" << std::endl;
  15. }
  16. };
  17.  
  18. class SomeClass {
  19. struct StaticConstructor {
  20. StaticConstructor() : storage(new StaticClassData){ storage->add(1); }
  21. StaticClassData* const storage;
  22. };
  23.  
  24. static StaticConstructor constructor;
  25. // static StaticClassData storage;
  26. };
  27.  
  28. //StaticClassData SomeClass::storage;
  29. SomeClass::StaticConstructor SomeClass::constructor;
  30.  
  31. int main(){}
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
Hello, this is 0x9ad6008
I'm fine
You never read this text