所以,假设我有这样的东西
template <class T>
class SingletonHolder : public T
{
public:
static SingletonHolder<T>& getInstance()
{
static SingletonHolder<T> instance;
return instance;
}
private:
SingletonHolder()
{
}
virtual ~SingletonHolder()
{
}
};//class SingletonHolder然后说我有一些虚拟的课程:
class SomeClassForCheck
{
public:
int someF()
{
return 5;
}
};然后是单身人士的用法:
typedef SingletonHolder< SomeClassForCheck > SomeClassSingleton;然后,当我从SomeClasse的CPP文件(任何函数之外)调用这段代码时,背后的想法基本上是使用这个技巧将创建者函数注册到Singleton Factory类
//此代码从匿名命名空间调用,位于.CPP文件SomeClassSingleton::getInstance().someF();
视觉C++尖叫一个错误:
此声明没有存储类或类型说明符。
此代码在GCC和C++ Builder下工作。到目前为止,我还没有在VisualC++中工作过,所以我做错了什么:)?
谢谢!独山
发布于 2014-08-29 02:37:39
是的,就像“黑暗者”说的,
在函数调用之前添加声明:
//换句话说: bool success = :)
bool success = FileIndexerFactory::getInstance().registerNew(MP3_INDEXER,mp3IndexerCreator);
工作过:)
这就是我从凌晨4:38分编码中得到的:)
https://stackoverflow.com/questions/25560694
复制相似问题