【发布时间】:2017-11-18 08:54:46
【问题描述】:
我想在我的 C++ 代码中使用 64 位整数。我知道我可以#include <cstdint> 然后声明uint64_t 或使用unsigned long long(或签名版本的等效项)。
但是,似乎直到 C++11 才添加对此的支持,我希望我的代码与不支持 C++11 的编译器兼容。
在 C++ 中支持 64 位整数的良好可移植方式是什么?
【问题讨论】:
-
这可能有一个 Boost 库
-
uint64_t 是可选的,即使是 C++11,所以它也不是可移植的。
-
您是否在寻找
uint64_t、uint32_t等内容,或者特别是uint64_t? -
@Justin 我对 64 位整数特别感兴趣。
-
@eleanora: 不,我想如果你设法遇到
long long宽于 64 位的平台,你将需要类似于__builtin_clzll(value) + 64 - CHAR_BIT * sizeof(unsigned long long)的东西。
标签: c++ types portability int64 long-long