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;
	}
}
相关推荐
\光辉岁月/12 分钟前
3.包装类
java·开发语言·包装类
衍玊13 分钟前
多路转接原理与应用
c++
FRing031 小时前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
西索斯coding1 小时前
Grok 4.7 调用一直 401 怎么办?不是 Key 过期,是 Authorization 头格式问题——排查全流程 + 修复示例
服务器·开发语言·ai·php
himobrinehacken2 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
SEO_juper2 小时前
hreflang 审计工具:外贸多语言站谷歌SEO的隐性杀手
开发语言·人工智能·爬虫·python·seo
WJ.Polar2 小时前
final、单例类、枚举类、抽象类、接口
java·开发语言
小羊没烦恼!2 小时前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
艾iYYY2 小时前
【无标题】
linux·开发语言·网络·操作系统
NetX行者2 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust