uint64_t
我正在寻找一个代表as UINT_MAX
is for最大值的宏unsigned int
。即我需要保证这个值是(1<<64)-1。
我尝试使用UINT64_MAX
,但使用 g++ 编译会导致:
'UINT64_MAX' was not declared in this scope
值得一提的是,我#define __STDC_LIMIT_MACROS
在使用UINT64_MAX
.
我很惊讶没有在网上找到有关它的有用信息。
可移植地使用cstdint
标头可能是一个很大的挑战(某些 MSVC 实现中缺少它)。同时,numeric_limits::max()
如果没有它可能很难使用constexpr
,实际上也不需要使用uint64_t
. 如果你不太关心这些事情,std::numeric_limits<uint64_t>::max()
很可能会成功。
Boost.Integer有一个实现cstdint
并附带一个额外的特征类来获得一个恒定的最大值。的兼容实现也cstdint
应该提供宏UINT64_MAX
,但我不确定提升。