主要观点:
- C++26 中提出了一个核心语言特性,即无名占位符
_
,可在同一作用域中多次声明。 - 常规用
_
表示不使用或不在意其值的变量,但高警告级别下可能导致编译错误,需用[[maybe_unused]]
标记。 - 对于多个
_
变量,[[maybe_unused]]
有时也无效,可使用std::ignore
,但在结构化绑定等情况下不适用。 - 新解决方案简单,在相同作用域多次使用
_
作为占位符,隐含[[maybe_unused]]
属性,不能用于模板参数列表或requires
子句。 - 作者研究了对现有代码的影响,如在 GMock 中使用
_
匹配输入时,只要using namespace testing;
在_
声明之前就无问题。 - GCC 14 和 Clang 18 已实现此更改。
关键信息:
- 常规用
_
表示未使用变量,高警告级别下需标记[[maybe_unused]]
。 std::ignore
可用于某些情况,但在结构化绑定中不适用。- C++26 的无名占位符
_
可多次声明,隐含[[maybe_unused]]
属性,有使用限制。 - GCC 14 和 Clang 18 已实现该特性。
重要细节:
- 示例代码展示了
_
在不同情况下的使用及问题,如在函数返回值、结构化绑定等中的使用。 - 提到对 GMock 代码的影响及避免问题的方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。