奇怪的编译器行为(C ++)

时间:2016-12-15 04:01:23

标签: c++ visual-studio compiler-errors

我正在尝试将GA库(GALib)添加到我的无错误程序中,当我添加它时,编译器返回奇怪的错误并重复它们很多次...例如,“语法错误:缺少” {'之前'<' “为以下模板代码的第一行返回:

template<class _Ty>
_Check_return_ inline _Ty _Pow_int(_Ty _Xx, int _Yx) _NOEXCEPT
{
unsigned int _Nx;
if (_Yx >= 0)
    _Nx = static_cast<unsigned int>(_Yx);
else
    _Nx = static_cast<unsigned int>(-_Yx);

for (_Ty _Zx = static_cast<_Ty>(1); ; _Xx *= _Xx)
    {
    if ((_Nx & 1) != 0)
        _Zx *= _Xx;
    if ((_Nx >>= 1) == 0)
        return (_Yx < 0 ? static_cast<_Ty>(1) / _Zx : _Zx);
    }
}

错误发生在cmath.h中 对同一行重复该错误,例如25次左右。对于其他许多人来说也一样。 (提到的错误是列表中的第一个错误) PS。我使用以下顺序添加了GA文件: 1-项目属性&gt; C ++&gt;其他包含库&gt;选择文件夹 2-将包含标题和源的文件夹拖放到项目解决方案管理器 PPS。所有源文件都扩展名为.C而不是.cpp 我该如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

按照本页面中的步骤操作:msdn.microsoft.com/en-us/library/032xwy55.aspx大多数错误都消失了(包括上面提到的错误)。

主要问题是编译器处理带有默认选项的.C文件,我将其更改为C ++,如上述页面中所述。