我要将VC ++ 2008升级到VC ++ 2010或2012.升级之前我有一些问题:
我的编译器只支持最大的__int64
整数。 VC ++ 2010,2012等版本是否支持__int128
?
我当前的编译器不支持_WIN64
或_WIN32
之类的内容来检查Windows平台。但我怀疑_INTEGRAL_MAX_BITS
是另一种解决方案;如果它在Win32中运行,则为64
,否则为128
。这是真的吗?
答案 0 :(得分:1)
在C ++标准中,有一个专门的部分可以满足您的需求,简而言之,<limits>
and the included methods可以解决您的问题。
编辑:我假设您需要某种标准化支持,否则您应该简单地参考编译器的在线文档
答案 1 :(得分:1)
对于您提到的所有编译器,32位和64位目标都存在64位整数类型。但是,没有128位整数类型。因此,对于所有列出的编译器,以及32位和64位目标,_INTEGRAL_MAX_BITS
的计算结果为64。
您可以做的最好的事情可能是使用SSE2内在__m128i
,但这取决于处理器上是否存在SSE2单元。但是您无需升级即可使用它。它也可以在VS2008中使用。