<algorithm>是否定义了宏X?

时间:2017-05-27 13:56:25

标签: c++ algorithm gcc stl

我尝试使用选项C ++ 14编译the code

values()

但是我在X之后得到错误:

  

错误:预期&#39;,&#39;或者&#39; ...&#39;

我没有选择C ++ 98的错误。使用我的gcc版本4.8.4,我没有收到错误,但我用5.4.0。这是一个错误吗?我做错了吗?

1 个答案:

答案 0 :(得分:8)

我在本地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
}

这可以被认为是编译器捆绑库中的一个错误,因为非保留的#define不应该与它们冲突。 (同一标头中的其他函数使用参数__X。)