首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VC++通用单例实现编译器错误

VC++通用单例实现编译器错误
EN

Stack Overflow用户
提问于 2014-08-29 02:08:03
回答 1查看 63关注 0票数 0

所以,假设我有这样的东西

代码语言:javascript
复制
template <class T>
class SingletonHolder : public T
{
public:
    static SingletonHolder<T>& getInstance()
    {

        static SingletonHolder<T> instance;
        return instance;
    }



private:
    SingletonHolder()
    {
    }


    virtual ~SingletonHolder()
    {
    }


};//class SingletonHolder

然后说我有一些虚拟的课程:

代码语言:javascript
复制
class SomeClassForCheck
{
public:
    int someF()
    {
        return 5;
    }
};

然后是单身人士的用法:

代码语言:javascript
复制
typedef SingletonHolder< SomeClassForCheck > SomeClassSingleton;

然后,当我从SomeClasse的CPP文件(任何函数之外)调用这段代码时,背后的想法基本上是使用这个技巧将创建者函数注册到Singleton Factory类

//此代码从匿名命名空间调用,位于.CPP文件SomeClassSingleton::getInstance().someF();

视觉C++尖叫一个错误:

此声明没有存储类或类型说明符。

此代码在GCC和C++ Builder下工作。到目前为止,我还没有在VisualC++中工作过,所以我做错了什么:)?

谢谢!独山

EN

回答 1

Stack Overflow用户

发布于 2014-08-29 02:37:39

是的,就像“黑暗者”说的,

在函数调用之前添加声明:

//换句话说: bool success = :)

bool success = FileIndexerFactory::getInstance().registerNew(MP3_INDEXER,mp3IndexerCreator);

工作过:)

这就是我从凌晨4:38分编码中得到的:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25560694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档