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 校验。