跳转至

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]] 直接作用于函数模板。

查看固定 commit 源码 · 返回证据索引