std::endian
来自 cppreference.com
在头文件 <bit> 中定义 |
||
enum class endian { |
(自 C++20 起) | |
- 如果所有标量类型都是小端序,则 std::endian::native 等于 std::endian::little.
- 如果所有标量类型都是大端序,则 std::endian::native 等于 std::endian::big.
也支持角落情况平台
- 如果所有标量类型的
sizeof
等于 1,则字节序无关紧要,所有三个值 std::endian::little、std::endian::big 和 std::endian::native 相同。 - 如果平台使用混合字节序,则 std::endian::native 既不等于 std::endian::big 也不等于 std::endian::little.
内容 |
[编辑] 可能的实现
enum class endian { #if defined(_MSC_VER) && !defined(__clang__) little = 0, big = 1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif };
[编辑] 备注
特性测试 宏 | 值 | Std | 特性 |
---|---|---|---|
__cpp_lib_endian |
201907L | (C++20) | std::endian |
[编辑] 示例
运行此代码
可能的输出
mixed-endian
[编辑] 参见
(C++23) |
反转给定整数的值中的字节 (函数模板) |