Порядок байтов std::endian в C++
Перечисление std::endian в <bit>
описывает, в каком порядке байты многобайтового
числа лежат в памяти: младший первым
little или старший big.
Константа std::endian::native показывает
правило текущей системы. Запишем проверки
и выведем, совпадает ли native с little
и с big:
#include <bit>
#include <iostream>
bool is_little = std::endian::native == std::endian::little;
bool is_big = std::endian::native == std::endian::big;
std::cout << is_little << "\n";
std::cout << is_big << "\n";
На типичной настольной x86 платформе
native совпадает с little,
поэтому первая строка часто печатает
1, а вторая - 0. Сравнение
не требует чтения сырых байтов переменной.
Объявите bool little_ok,
равный выражению std::endian::native
== std::endian::little. Выведите
little_ok.