属性是一种可选的将特定信息添加到源代码中的机制。从C++11开始,通过使用[[attribute]]对属性进行标准化支持,下面介绍了两种常用属性。
- [[nodiscard]]用来修饰一个有返回值的函数,如果该返回值没有被使用则编译器将会报警告信息。
例:
[[nodiscard("not use return")]] int fun()
{
return 0;
}
int main()
{
fun();
return 0;
}
2. [[ maybe_unused]] 可用来修饰函数参数,当该参数没有被使用时,编译器将不在报警告信息。
例:
int add(int n1,int n2,int n3)
{
return n1 + n2;
}
int main()
{
add(1,2,3);
return 0;
}
如果使用了该参数,该编译将不会报任何警告。
int add(int n1,int n2,[[ maybe_unused]] int n3)