ev-abseil-nodiscard-downcast-003¶
| 字段 | 值 |
|---|---|
| 项目 | abseil/abseil-cpp |
| 固定 commit | 2065f4ded055 |
| 路径 | absl/base/casts.h |
| 行段 | L254-L256 |
| 特性 | 标准属性 |
| 许可证 | Apache-2.0 |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-26 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
在模板转换函数上标注 [[nodiscard]],提醒调用方必须使用转换结果
为什么典型¶
down_cast 返回转换后的指针;把它当语句丢弃几乎总是漏写赋值或误用。属性让这类错误在调用点触发警告,而不是等到解引用空指针。
摘录¶
template <typename To, typename From> // use like this: down_cast<T*>(foo);
[[nodiscard]]
inline To down_cast(From* f) { // so we only accept pointers
备注¶
生产头文件;[[nodiscard]] 直接作用于函数模板。