使用<bit>
库中定义的endian
枚举类进行编译时判断。
endian
类中共有3个枚举类成员:big
,little
和native
,若编译目标环境为大端序,则有std::endian::native == std::endian::big
,若为小端序,则有std::endian::native == std::endian::little
.
示例代码如下:
#include <bit>
#include <iostream>
int main() {
if constexpr (std::endian::native == std::endian::big)
std::cout << "big-endian\n";
else if constexpr (std::endian::native == std::endian::little)
std::cout << "little-endian\n";
else std::cout << "mixed-endian\n";
}
该示例代码会输出编译目标环境的端序。示例代码引用自:https://en.cppreference.com/w/cpp/types/endian