icpc C ++ 11 с gcc stdlib - PullRequest
       30

icpc C ++ 11 с gcc stdlib

3 голосов
/ 14 февраля 2012

Я использую icpc (не обязательно) и компилирую с -std = c ++ 0x, чтобы я мог использовать lambas.

Однако, когда я делаю это, он создает havok с gcc stdlib с функциями, которые один поддерживает, а другой нет.

Я попытался определить

__GXX_EXPERIMENTAL_CXX0X__

но это не помогло.

Поэтому в идеале я хочу использовать возможность языка C ++ 0x с помощью библиотеки C ++ 03.

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;

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Ошибки явно указывают на код C ++ 11, поэтому кажется, что вы хотите не позволить компилятору увидеть что-либо из этого, например, с -U__GXX_EXPERIMENTAL_CXX0X__ (эквивалентная опция GCC).

Однако, если ICC определяет это для вас по -std=c++0x, вам следует выяснить, какую версию библиотеки вы должны использовать (или искать библиотеку в вашей локальной установке ICC).Совершенно очевидно, что библиотеки C ++ 03 достаточно для компиляции кода C ++ 11.

0 голосов
/ 14 февраля 2012

icpc только предупреждает в такой ситуации. Не обращайте на это внимания. Все будет скомпилировано.

...