Dan*_*zes 7 c++ algorithm gcc stl
我尝试使用选项C++ 14 编译代码:
#define X static_cast<double>(2)
#include <algorithm>
// if you change the two lines, no error occurs
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是我在X之后得到错误:
错误:预期','或'...'
我没有选择C++ 98的错误.使用我的gcc版本4.8.4,我没有得到错误,但我用5.4.0.这是一个错误吗?我做错了吗?
我在本地g ++ 5.4.0安装上遇到同样的错误.我查看了g++ -E输出,似乎错误跟踪到/usr/lib/gcc/x86_64-linux-gnu/5/include/ia32intrin.h第252和254行:
/* Write flags register */
extern __inline void
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
__writeeflags (unsigned long long X) // 252
{
__builtin_ia32_writeeflags_u64 (X); // 254
}
Run Code Online (Sandbox Code Playgroud)
这可以被认为是编译器捆绑库中的一个错误,因为非保留的#defines不应该与它们冲突.(同一标头中的其他功能使用参数__X.)