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有一个免费的社区版本。