3

我正在使用 icpc(非可选)并且我正在使用 -std=c++0x 进行编译,因此我可以使用lambas。

但是,当我这样做时,它会使用 gcc stdlib 创建 havok,其中一个支持另一个不支持的功能。

我试过定义

__GXX_EXPERIMENTAL_CXX0X__

但这没有帮助。

因此,理想情况下,我要求的是能够将 c++0x 语言功能与 C++03 标准库一起使用。

海合会 4.6

国际刑事法院 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;
4

2 回答 2

2

这些错误显然指向 C++11 代码,因此听起来您想阻止编译器看到任何错误,例如使用-U__GXX_EXPERIMENTAL_CXX0X__(等效的 GCC 选项)。

但是,如果 ICC 在 下为您定义了这个-std=c++0x,那么您应该找出您应该使用的库版本(或在您的本地 ICC 安装中查找库)。远不能确定 C++03 库是否足以编译 C++11 代码。

于 2012-02-15T09:16:55.400 回答
0

icpc仅在这种情况下发出警告。不要把注意力放在这上面。一切都会被编译。

于 2012-02-14T19:49:16.830 回答