fork download
  1. #include <iostream>
  2.  
  3. template <class T>
  4. class Singleton
  5. {
  6. private:
  7. static T* instance;
  8.  
  9. protected:
  10. Singleton<T>( )
  11. {
  12. if ( instance == 0 )
  13. instance = static_cast<T*>(this);
  14. }
  15.  
  16. public:
  17. static T* getInstancePtr( )
  18. {
  19. return instance;
  20. }
  21. };
  22.  
  23. template <class T> T* Singleton<T>::instance = 0;
  24.  
  25.  
  26. struct Console : public Singleton<Console> {};
  27.  
  28. int main()
  29. {
  30. Console c1, c2;
  31. std::cout << (&c1 != &c2);
  32. }
  33.  
Success #stdin #stdout 0.02s 2724KB
stdin
Standard input is empty
stdout
1