std::endian
De es.cppreference.net
| Definido en el encabezado <bit>
|
||
enum class endian
{
little = /* implementation-defined */,
big = /* implementation-defined */,
native = /* implementation-defined */,
};
|
(desde C++20) | |
Indica el orden de bytes de todos los tipos escalares:
- Si todos los tipos escalares son little-endian,
std::endian::nativees igual astd::endian::little. - Si todos los tipos escalares son big-endian,
std::endian::nativees igual astd::endian::big.
También se admiten plataformas con casos límite:
- Si todos los tipos escalares tienen
sizeofigual a1, el orden de bytes no importa y los tres valores,std::endian::little,std::endian::bigystd::endian::nativeson iguales. - Si la plataforma usa endian mixto,
std::endian::nativeno es igual ni astd::endian::bigni astd::endian::little.
Implementación posible
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 };
Notas
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_endian
|
201907L
|
(C++20) | std :: endian |
Ejemplo
Ejecutar este código
Salida posible:
mixed-endian
Véase también
|
(C++23)
|
invierte los bytes en el valor entero dado
(plantilla de función) |
|
C documentation
para
endian
|
|