Eneboo - Documentación para desarrolladores
|
00001 #ifndef _EXACTLYONE_H_ 00002 #define _EXACTLYONE_H_ 00003 00010 namespace Hoard { 00011 00012 template <class CLASS> 00013 class ExactlyOne { 00014 public: 00015 00016 inline CLASS& operator() (void) { 00017 static double buf[(sizeof(CLASS) + sizeof(double) - 1) / sizeof(double)]; 00018 static CLASS * theOneTrueInstancePtr = new (buf) CLASS; 00019 return *theOneTrueInstancePtr; 00020 } 00021 00022 }; 00023 00024 } 00025 00026 #endif 00027