Ben*_*Ben 4 c++ deprecated c++14 visual-studio-2015
我在代码中使用新的 [[deprecated("message")]] 属性。我有一个类,它有两个构造函数,其中一个应该标记为已弃用(显然已简化,并且可能存在语法错误):
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;
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 抱怨“属性‘已弃用(“使用 MyClass(int) 代替”)’不能在此上下文中应用。
有没有办法在 Visual Studio 2015 中弃用构造函数,以便在任何地方使用它时我都会收到警告?
将参数标记为已弃用:
MyClass([[deprecated]]const char* someStr){}
Run Code Online (Sandbox Code Playgroud)
或者:
MyClass([[deprecated("Use MyClass(int) instead")]]const char* someStr){}
Run Code Online (Sandbox Code Playgroud)
__declspec(deprecated("** Use MyClass(int) instead **"))
MyClass(const char* someStr) : _someNumber(atoi(someStr)) {}
Run Code Online (Sandbox Code Playgroud)
另外,根据您的更新版本(第 3 号),您可能会遇到此错误。
归档时间: |
|
查看次数: |
444 次 |
最近记录: |