c++语言//template <> 啥意思?该如何解决
c++语言//template <> 啥意思????
------解决方案--------------------
template <> tdata* Singleton<tdata>::msInstance = NULL;
template <> const char* Singleton<tdata>::mClassTypeName("Console");
//去掉template <> 与不去掉 啥区别???
template <class T>
class Singleton
{
public:
Singleton()
{
msInstance = static_cast<T*>(this);
}
virtual ~Singleton()
{
msInstance = NULL;
}
static T& getInstance()
{
return (*getInstancePtr());
}
static T* getInstancePtr()
{
return msInstance;
}
static const char* getClassTypeName()
{
return mClassTypeName;
}
private:
static T* msInstance;
protected:
static const char* mClassTypeName;
};
class tdata : public Singleton<tdata>{
};
template <> tdata* Singleton<tdata>::msInstance = NULL;
template <> const char* Singleton<tdata>::mClassTypeName("Console");
int _tmain(int argc, _TCHAR* argv[])
{
tdata* a = new tdata;
return 0;
}
------解决方案--------------------
template <> tdata* Singleton<tdata>::msInstance = NULL;
template <> const char* Singleton<tdata>::mClassTypeName("Console");
//去掉template <> 与不去掉 啥区别???