2017-09-02 92 views
2

我在我的代码中使用了新的[[不推荐(“消息”)]]属性。我有一个类,它有两个构造函数,其中之一为废弃应标(明显简化,可能与语法错误):什么是在Visual Studio C++中废弃单个构造函数的正确语法?

class MyClass 
{ 
public: 
    // good constructor 
    MyClass(int someNumber): _someNumber(someNumber) {} 

    [[deprecated("Use MyClass(int) instead")]] 
    MyClass(const char* someStr): _someNumber(atoi(someStr)) {} 

private: 
    int _someNumber; 
} 

Visual Studio中抱怨说,“弃用属性”(”使用MyClass的(INT)而不是“),”无法在此环境中应用

是否有弃用在Visual Studio 2015年,使我得到一个警告,一个构造函数,如果它是在任何地方使用的方式

+0

是托管的还是常规的C++? – orhtej2

+0

@ orhtej2 Regular C++ – Ben

回答

3

标记参数为:已不适用。?

MyClass([[deprecated]]const char* someStr){} 

或者:

MyClass([[deprecated("Use MyClass(int) instead")]]const char* someStr){} 

或者使用__declspec(deprecated)

__declspec(deprecated("** Use MyClass(int) instead **")) 
     MyClass(const char* someStr) : _someNumber(atoi(someStr)) {} 

还取决于您的更新版本(无。 3)您可能遇到this bug

相关问题