我使用icpc (非可选),并且我使用-std=c++0x编译,所以我可以使用lambas。
然而,当我这样做的时候,它会用一个支持另一个不支持的特性来创建与gcc标准类库的havok。
我试着定义
__GXX_EXPERIMENTAL_CXX0X__但这并不管用。
因此,理想情况下,我所要求的是能够在C++03标准库中使用c++0x语言特性。
gcc 4.6
icc 12.1]
编辑错误示例:
/usr/include/c++/4.6.2/type_traits(74): error: identifier "constexpr" is undefined
static constexpr _Tp value = __v;
^
/usr/include/c++/4.6.2/type_traits(74): error: expected a ";"
static constexpr _Tp value = __v;
^
/usr/include/c++/4.6.2/type_traits(75): error: member "std::integral_constant<_Tp, __v>::_Tp" is not a type name
typedef _Tp value_type;
^
/usr/include/c++/4.6.2/type_traits(76): error: member "std::integral_constant<_Tp, __v>::_Tp" is not a type name
typedef integral_constant<_Tp, __v> type;
^
/usr/include/c++/4.6.2/type_traits(77): error: identifier "constexpr" is undefined
constexpr operator value_type() { return value; }
^
/usr/include/c++/4.6.2/type_traits(87): error: identifier "constexpr" is undefined
constexpr _Tp integral_constant<_Tp, __v>::value;发布于 2012-02-15 17:16:55
这些错误显然指向C++11代码,所以听起来像是想防止编译器看到其中的任何错误,比如使用-U__GXX_EXPERIMENTAL_CXX0X__ (相当于GCC选项)。
但是,如果ICC在-std=c++0x下为您定义了这个库,那么您应该找出您应该使用的库的版本(或者在您的本地ICC安装中查找库)。还不能确定C++03库是否足以编译C++11代码。
发布于 2012-02-15 03:49:17
icpc只在这种情况下发出警告。不要把注意力放在这件事上。所有的东西都会被编译。
https://stackoverflow.com/questions/9282461
复制相似问题