C++单例模式的实现
template <class T>
Singleton
{
public:
static T& getinstance()
{
pthread_once(&ponce_,&Singleton::init);
return *value;
}
private:
singleton();
Singleton(const Singleton);
~Singleton();
void init()
{
value_=new T();
}
private:
static pthread_once_t ponce_;
static T* value_;
}
template<class T>
pthread_once_t singleton<T>::ponce=PTHREAD_ONCE_INIT;
template <class T>
T* singleTon<T>::value_=NULL;
如果要定制构造函数 使用偏特化技术。