XTGMATH.H具有编译时间错误

xtgmath.h has compile-time errors

本文关键字:时间 错误 编译 XTGMATH      更新时间:2023-10-16

我正在尝试在Visual Studio 2013 Professional中编译一个旧的C 程序。我正在遇到编译错误,Visual Studio说xtgmath.h文件中有语法错误。完整的日志是:

1> fill.cpp 1> c: program文件(x86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2059:语法错误:'('

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2027:使用未定义的类型'std :: enable_if'

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtr1common(67):请参阅'std :: enable_if'

的声明

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):警告c4346:'std :: is_integral< _ty> :: value':依赖性名称不是类型

1>带有'typeName'的前缀以指示类型

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2988:无法识别的模板声明/定义

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2143:语法错误:丢失')'','

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c4430:缺少类型指定词 - int假定。注意:C 不支持Default-Int

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2059:语法错误:',','

1> C: Program Files(X86) Microsoft Visual Studio 12.0 vc include xtgmath.h(179):错误c2059:语法错误:')'

我尝试了其他人推荐的几件不同的事情,但似乎都没有用。我试图通过源文件运行预处理器并检查生成的代码,但没有提供任何见解。有人知道这里出了什么问题吗?

我的错误与您的错误完全相同 - 使用旧代码,现在尝试根据VS2013进行编译。对我来说,这个问题与Xtgmath.h的这条线有关:

_generic_math1(圆形,_crtspecial)

我将其钉在 round 中是在stdafx.h中预定的。在VS2013中, round 已经是内置功能,并具有定义覆盖引起编译错误。

为了解决这个问题,我已经评论了stdafx.h中的 rough 定义。