属性说明符
\[...\]
标准属性*5
对编译的汇编代码产生影响
\[noreturn] ---不返回
告诉编译器和程序员,这个函数被调用后,执行流不会返回给调用者。

\[deprecated] ---已弃用
// 已弃用
标记"已弃用"。声明某个实体(函数、类、变量)已经过时,但仍可使用。使用时会触发编译警告,提醒开发者迁移。
cpp
[[deprecated("该函数已弃用,请使用XXX")]]
\[nodiscard] ---强制检查返回值
// 不可丢弃
如果调用者忽略了被此属性标记的函数的返回值,编译器会发出警告。
\[maybe_unused] ---可能未使用
//
告诉编译器"这个变量、函数或参数可能用不到,别警告我"。
\[fallthrough] ---贯穿
// 贯穿
用在 switch 语句中,明确告诉编译器某个 case 不写 break 是有意为之,避免警告。
cpp
void fun(int a){
switch(a){
case 1:
break;
case 2:
f1();
[[fallthrough]]
case 3:
f2();
default:
break;
}
}