Тип std::byte в C++
Отдельный байт как тип, а не как маленькое целое с арифметикой, обозначает std::byte в C++20.
Заголовок - <cstddef>. Из обычного
целого байт получают явным приведением
static_cast, иначе компилятор не
примет неявное преобразование. Запишем
байт и выведем его как целое через второе
приведение:
#include <cstddef>
#include <iostream>
std::byte unit = static_cast<std::byte>(170);
std::cout << static_cast<unsigned>(unit) << "\n";
К std::byte не применяют сложение,
умножение и сравнение как к числу - только
побитовые операции там, где стандарт это
разрешает, и явные приведения. Запишем
второй байт из меньшего целого:
#include <cstddef>
std::byte low = static_cast<std::byte>(15);
Объявите std::byte tag со
значением 255 через static_cast.
Выведите tag как unsigned int
вторым приведением.