C++无法识别3points运算符

C++ not recognizing 3points operator

本文关键字:3points 运算符 识别 C++      更新时间:2023-10-16

我有以下代码:

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)...));
}

我得到以下错误:

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

我不明白为什么。为什么它不能识别...?我做错了什么?我在Ubuntu上有同样的代码,它运行得很好,现在我已经把它复制到VS2012中,但它有错误。请有人帮我。

为此,您需要Visual Studio 2013。请参阅Visual Studio c++11功能支持页面中的Variadic模板:http://msdn.microsoft.com/en-us/library/hh567368.aspx

Visual Studio 2013的社区版本可在此处获得:http://visualstudio.com/en-us/downloads