I am trying to compile an older C++ program in Visual Studio 2013 Professional. I am encountering a compile error, with Visual Studio saying that there are syntax errors in the xtgmath.h file. The complete log is:
1> fill.cpp 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2059: syntax error : '('
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2027: use of undefined type 'std::enable_if'
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtr1common(67) : see declaration of 'std::enable_if'
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): warning C4346: 'std::is_integral<_Ty>::value' : dependent name is not a type
1> prefix with 'typename' to indicate a type
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2988: unrecognizable template declaration/definition
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2143: syntax error : missing ')' before ','
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2059: syntax error : ','
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(179): error C2059: syntax error : ')'
I have tried several different things that others have recommended, but none of it seems to work. I tried to run the preprocessor over the source file and examine the generated code, but it offered no insights. Does anyone have an idea about what's going wrong here?
cbrt. Write your macros in all-capitals to avoid this kind of lossage. - Hans Passant