C++ C++;无法识别3点运算符

C++ C++;无法识别3点运算符,c++,visual-studio,C++,Visual Studio,我有以下代码: class IConfigItem { public: virtual ~IConfigItem() {}; virtual operator int() const { return 0; } virtual operator std::string () const { return std::string(); } }; template< typename T > class ConfigItem : public IConfigI

我有以下代码:

class IConfigItem
{
public:
    virtual ~IConfigItem() {};

    virtual operator int() const { return 0; }
    virtual operator std::string () const { return std::string(); }
};

template< typename T > class ConfigItem : public IConfigItem
{
private:
    T m_value;

public:
    ConfigItem< T >(const T& valueIn = 0) : m_value(valueIn) {}

    operator T() const
    {
        return m_value;
    }
};

template< typename T, typename ...Args > std::unique_ptr< T > makeUnique(Args&& ...args)
{
    return std::unique_ptr< T >(new T(std::forward< Args >(args)...));
}
class-iconfitem
{
公众:
virtual~iconfitem(){};
虚拟运算符int()常量{return 0;}
虚拟运算符std::string()常量{return std::string();}
};
模板类ConfigItem:public IConfitItem
{
私人:
T m_值;
公众:
ConfigItem(const T&valueIn=0):m_值(valueIn){}
运算符T()常量
{
返回m_值;
}
};
模板std::unique\u ptrmakeUnique(Args&&…Args)
{
返回std::unique_ptr(新的T(std::forward(Args)…);
}
我得到了以下错误:

错误1错误C2143:语法错误:缺少“,”在“…”之前


我不明白为什么。为什么它不能识别
?我做错了什么?我在Ubuntu上也有相同的代码,它工作得很好,现在我把它复制到VS2012上,它有错误。请有人帮助我。

您需要Visual Studio 2013来完成此任务。请参见Visual Studio c++11功能支持页面中的可变模板:

Visual Studio 2013的社区版可在以下位置获得:

VS2012不支持c++11功能的可变模板。为此,您需要VS2013。请参见变量模板:
被标为省略号,以备将来参考。是否有方法更新它?或者使用c++11?VS2013有一个免费的社区版本。