跳转至

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 组合,访问器既可编译期求值,也可在运行期用于异常安全边界。

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