跳转至

ev-json-if-constexpr-byteswap-003

字段 值
项目 nlohmann/json
固定 commit 55f93686c015
路径 include/nlohmann/detail/input/binary_reader.hpp
行段 L2821-L2835
特性 if constexpr
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-24
测试代码 否
发现方式 tree-sitter

用法

按大小与整型特性选择字节交换路径

为什么典型

同一函数内按 sizeof 和 is_integral_v 丢弃不适用分支,是处理字节序的常见写法。

摘录

    static void byte_swap(NumberType& number)
    {
        constexpr std::size_t sz = sizeof(number);
#ifdef __cpp_lib_byteswap
        if constexpr (sz == 1)
        {
            return;
        }
        if constexpr(std::is_integral_v<NumberType>)
        {
            number = std::byteswap(number);
            return;
        }
#endif
        auto* ptr = reinterpret_cast<std::uint8_t*>(&number);

备注

生产路径;固定 commit 已由 tools/validate.py --check-corpus 校验。

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