std::numeric_limits<uint32_t>::max() == static_cast<uint32_t>(-1) == ~0U
std::numeric_limits<uint32_t>::max()
static_cast<uint32_t>(-1)
~0U