FreeBSD Manual Pages
std::endian(3) C++ Standard Libary std::endian(3) NAME std::endian - std::endian Synopsis Defined in header <bit> enum class endian { little = /*implementation-defined*/, (since C++20) big = /*implementation-defined*/, native = /*implementation-defined*/ }; Indicates the endianness of all scalar types: * If all scalar types are little-endian, std::endian::native equals std::endian::little * If all scalar types are big-endian, std::endian::native equals std::endian::big Corner case platforms are also supported: * If all scalar types have sizeof equal to 1, endianness does not matter and all three values, std::endian::little, std::endian::big, and std::endian::native are the same. * If the platform uses mixed endian, std::endian::native equals neither std::endian::big nor std::endian::little. Possible implementation enum class endian { #ifdef _WIN32 little = 0, big = 1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif }; Notes Feature-test macro: __cpp_lib_endian Example // Run this code #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"; } Possible output: little-endian See also byteswap reverses the bytes in the given integer value (C++23) (function template) http://cppreference.com 2022.07.31 std::endian(3)
NAME | Synopsis | Possible implementation | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::endian&sektion=3&manpath=FreeBSD+Ports+15.0>
