Packet::load(std::uint8_t* buf, std::size_t size) {
if (size < Header::Size) return false;
MemView view {buf, size};
readAddress(view.subspan(Offset::Address, Size::Address)); //Size так же структура c enum или inline константами
readType(view.subspan(Offset::Type, Size::Type));
}
Нулевой. Который под цифрой 0. С другой стороны - хз насколько этот вопрос реально новичковый.
Offtopic, но мне кажется тут проще stream-like ParsingContext parser(buf); parser.read4(address); parser.read2(type); parser.read2(num); ...
Через boost fusion сделать что то типа https://github.com/berkus/libsss/blob/master/include/sss/framing/packet_frame.h
Обсуждают сегодня