little-endian:
\nfor (size_t i = 0; i < sizeof(multibyte_thing); i++)\n{\n    serialize(static_cast<uint8_t *>(&multibyte_thing) + i);\n}\n


big_endian:
\nfor (size_t i = 0; i < sizeof(multibyte_thing); i++)\n{\n    uint8_t *   lsb_ptr;\n\n    lsb_ptr = static_cast<uint8_t>(&multibyte_thing) + (sizeof(multibyte_thing) - 1);\n    serialize(lsb_ptr - i);\n}\n


Any questions?


(Yes, there are myriad other ways to do this...you shoulda seen my first attempt...or maybe not!)