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