#include <iostream>
#include <array>
#include <algorithm>

template<typename T>
auto serialize(T n) -> std::array<unsigned char, sizeof n>
{
    std::array<unsigned char, sizeof n> bytes;
    std::copy(reinterpret_cast<const char *>(&n),
              reinterpret_cast<const char *>(&n) + sizeof n,
              bytes.begin());
    return bytes;
}

int main()
{
	auto arr = serialize(static_cast<uint64_t>(0x123456));
    for (auto byte : arr)
        std::cout << std::hex << +byte << " ";
}