C++新特性---属性说明符与标准属性

属性说明符

\[...\]

标准属性*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;
	}
}
相关推荐
程序员小八7771 小时前
上海百度B端java后端日常实习一面
java·开发语言
wp123_11 小时前
IPX8 防水 Type‑C连接器:安费诺 124018792112A 与 TONEVEE TY48087‑24A 技术梳理
c语言·开发语言
不会代码的小猴1 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
fangzhanpeng1682 小时前
(前端)2.js变量作用域样例
开发语言·前端·javascript
mqiqe4 小时前
线程调度与 Schedulers:Project Reactor 并发模型的核心引擎
java·开发语言·网络
xixiaoyunya5 小时前
JavaScript 异步编程全解析:从回调地狱到 async/await 的演进之路
开发语言·javascript·ecmascript
精英的英6 小时前
记一次 Qt5 Language Server 开发
开发语言·vscode·qt
烧酒同学6 小时前
【C++】记录size of std::vector的巧妙坑
开发语言·c++·图形渲染
周周哈哈哈6 小时前
线程创建、执行、退出、回收
java·开发语言