Есть ли подобный std::streambuf
механизм для преобразования многобайтовых значений в сетевой порядок байтов? В частности, Boost Asio предлагает такой примитив? Вот пример того, что я хотел бы, чтобы буфер потока делал:
uint64_t x = 42ull;
network_streambuf b1;
std::ostream os(&b1);
os << 42ull; // htonll
network_streambuf b2;
std::istream is(&b2);
uint64_t y;
is >> y; // ntohll
РЕДАКТИРОВАТЬ : Ответы предполагают, что это неправильный способ думать о проблеме: буферы потока просто предоставляют доступ к последовательностям символов, их работа не выполнять форматированный ввод-вывод или преобразование. Я, вероятно, реализую небольшой буферный класс, который обеспечивает необходимые перегрузки для operator<<
и operator>>
для выполнения преобразования.