std:: endian
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(C++20)
|
||||
|
(C++23)
|
||||
| Integral powers of 2 | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Rotating | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Counting | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Endian | ||||
|
endian
(C++20)
|
|
Definido en el encabezado
<bit>
|
||
|
enum
class
endian
{
|
(desde C++20) | |
Indica el endianness de todos los scalar types :
- Si todos los tipos escalares son little-endian, std :: endian :: native es igual a std :: endian :: little .
- Si todos los tipos escalares son big-endian, std :: endian :: native es igual a std :: endian :: big .
También se admiten plataformas con casos extremos:
-
Si todos los tipos escalares tienen
sizeofigual a 1 , la endianidad no importa y los tres valores, std :: endian :: little , std :: endian :: big , y std :: endian :: native son iguales. - Si la plataforma utiliza endianidad mixta, std :: endian :: native no es igual ni a std :: endian :: big ni a std :: endian :: little .
Contenidos |
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
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
|
|