Ответ 1
Использование заголовка cstdint
портативно может быть довольно сложной задачей (она отсутствует в некоторых реализациях MSVC). В то же время numeric_limits::max()
может быть трудно использовать без constexpr
, и на самом деле не требуется работать с uint64_t
. Если вас не волнует слишком много, std::numeric_limits<uint64_t>::max()
, скорее всего, сделает трюк.
Boost.Integer имеет реализацию cstdint
и поставляется с дополнительным классом признаков, чтобы получить постоянное максимальное значение. Соответствующая реализация cstdint
также должна содержать макрос UINT64_MAX
, но я не уверен в повышении.