#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* const storage;
  };
  
  static StaticConstructor constructor;
 // static StaticClassData storage;
};

//StaticClassData SomeClass::storage;
SomeClass::StaticConstructor SomeClass::constructor;

int main(){}