我希望通过int64_t为我的int获利,当存在于c ++ 98或更高版本的实现中时(我知道C ++ 11已经提供了64位int)。 是否有一种可移植的通用方法来检查int64_t的存在,或者 - 甚至更好 - 可用的任何64位或更大的整数类型,如:
#ifdef has_int64_t
typedef int64_t myint
#else
typedef int myint
#endif
//...code
myint a;
如果可能,检查应适用于c ++ 98,c ++ 03和c ++ 11。
答案 0 :(得分:0)
非常确定这应该可以使用stdint.h:
#ifdef INT64_C
//...
#else
//...
#endif
答案 1 :(得分:0)
stdint.h
和C ++ 11 cstdint
标题的情况相当棘手。特别是因为它们在某些VS版本上缺失。最简单的路线肯定是boost stdint。