C++ 11:
1.
C++ 14:
1. 属性[[deprecated
]] or [[deprecated("xxx")
]], 可以用来描述类,变量,函数等,用于提示该标记修饰的内容将来可能会被丢弃。
class [[deprecated]] test { }; //修饰类
[[deprecated("getDiagnostics() has been deprecated.")]] void test1(int a){} //修饰函数
int main() {
[[deprecated]] int temp = 0; //修饰变量
++temp; //编译告警:warning: 'temp' is deprecated
test a; //编译告警:warning: 'test' is deprecated
test1(1); //编译告警:warning: 'void test1(int)' is deprecated
return 0;
}
2. 属性[[maybe_unused]] 用于描述暂时没有被使用的函数或变量,以避免编译器对此发出警告
[[maybe_unused]] int f() //没有被使用的函数
{
return 1;
}
void Process::collect(
std::string pString,
[[maybe_unused]] const diag::ReportParams& parameters,
[[maybe_unused]] const std::string& tmpDir)
int main()
{
[[maybe_unused]] int i = 0; //没有被使用的变量
return 0;
}
C++ 17:
1.