在Visual Studio 2008下使用long long int编译错误的原因是什么?

时间:2011-11-28 16:14:30

标签: c++ visual-studio-2008

以下代码(触发错误的简化示例)无法使用VS 2008进行编译:

#include <math.h>

void test()
{
    long long int val1 = 1;
    long long int val2 = 2;
    long long int val3 = abs<long long int>(val1 / val2);
}

在第三行给出编译器错误(C2062) - 类型__int64是意外的。这个错误的原因是什么?如何避免?

1 个答案:

答案 0 :(得分:2)

标准中未指定long longabs

26.5 / 3显示了我们intlong版本。

26.5 / 5为我们提供floatdoublelong double重载。

我怀疑似乎不需要其他重载,因为long long并非所有编译器/系统都强制要求或支持。