如何在编译时确定我的平台是小端还是大端?我已经看到很多方法可以在运行时使用强制转换来确定,以及一些与平台相关的选项。是否有便携式或标准的方式来做到这一点?
constexpr bool is_little_endian = ?;
答案 0 :(得分:9)
C ++ 20将std::endian
添加到<type_traits>
,可以在constexpr上下文中使用。
if constexpr (std::endian::native == std::endian::little) {
std::cout << "litle endian\n";
} else if constexpr(std::endian::native == std::endian::big) {
std::cout << "big endian\n";
} else {
std::cout << "something silly\n";
}