ev-fmt-noexcept-string-view-002¶
| 字段 | 值 |
|---|---|
| 项目 | fmtlib/fmt |
| 固定 commit | 1be298e1bd68 |
| 路径 | include/fmt/base.h |
| 行段 | L547-L555 |
| 特性 | noexcept 异常说明 |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-11-04 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
string_view 的访问器全部标注 noexcept
为什么典型¶
data、size、begin、end 和 operator[] 只读已有缓冲区,不可能失败;标注 noexcept 是视图类型的基本约定,也让泛型代码可以依赖这个保证。
摘录¶
constexpr auto data() const noexcept -> const Char* { return data_; }
constexpr auto size() const noexcept -> size_t { return size_; }
constexpr auto begin() const noexcept -> iterator { return data_; }
constexpr auto end() const noexcept -> iterator { return data_ + size_; }
constexpr auto operator[](size_t pos) const noexcept -> const Char& {
return data_[pos];
}
备注¶
生产头文件;noexcept 与 constexpr 组合,访问器既可编译期求值,也可在运行期用于异常安全边界。