- #include <stdio.h> 
-   
- template<typename T> 
- class singleton { 
-   static T* g_pInstance; 
- public: 
-   static T* getInstance() { 
-   	return g_pInstance; 
-   } 
-   singleton() { 
-   	g_pInstance = (T*)this; 
-   } 
-   ~singleton() { 
-   	if(g_pInstance == this) g_pInstance = nullptr; 
-   } 
- }; 
-   
- template<typename T> 
- T* singleton<T>::g_pInstance = nullptr; 
-   
- class Any : public singleton<Any> { /* Done */ }; 
-   
- int main() { 
-   printf("0x%x\n", Any::getInstance()); 
-   return 0; 
- } 
-   
				I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpjbGFzcyBzaW5nbGV0b24gewogIHN0YXRpYyBUKiBnX3BJbnN0YW5jZTsKcHVibGljOgogIHN0YXRpYyBUKiBnZXRJbnN0YW5jZSgpIHsKICAJcmV0dXJuIGdfcEluc3RhbmNlOwogIH0KICBzaW5nbGV0b24oKSB7CiAgCWdfcEluc3RhbmNlID0gKFQqKXRoaXM7CiAgfQogIH5zaW5nbGV0b24oKSB7CiAgCWlmKGdfcEluc3RhbmNlID09IHRoaXMpIGdfcEluc3RhbmNlID0gbnVsbHB0cjsKICB9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpUKiBzaW5nbGV0b248VD46OmdfcEluc3RhbmNlID0gbnVsbHB0cjsKCmNsYXNzIEFueSA6IHB1YmxpYyBzaW5nbGV0b248QW55PiB7IC8qIERvbmUgKi8gfTsKCmludCBtYWluKCkgewogIHByaW50ZigiMHgleFxuIiwgQW55OjpnZXRJbnN0YW5jZSgpKTsKICByZXR1cm4gMDsKfQo=