2012-02-14 2 views
3

icpc (선택 사항이 아님)를 사용 중이며 -std = C++ 0x로 컴파일 중이므로 lambas를 사용할 수 있습니다.icpc gcc stdlib가있는 C++ 11

그러나 내가 할 때 다른 사람이 지원하지 않는 기능을 가진 gcc stdlib로 havok을 만듭니다.

나는

__GXX_EXPERIMENTAL_CXX0X__ 

을 정의하는 시도했지만 그 도움이되지 않았다.

그래서 이상적으로는 C++ 0x stdlib와 함께 C++ 0x 언어 기능을 사용할 수있는 능력이 필요합니다.

GCC 4.6

ICC 12.1] 에러

EDIT 예 :

/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; 
+0

"icpc"란 무엇입니까? –

+0

"icpc"는 인텔 컴파일러를 실행하는 명령입니다. g ++와 많이 비슷합니다. –

+0

icpc는 Intel C++ 컴파일러를 호출하는 명령입니다. 다른 OS를위한 아주 좋은 최적화 컴파일러. – mikithskegg

답변

2

오류는 분명히, C++ (11) 코드를 가리 킵니다.

그러나 ICC가 -std=c++0x 아래에서 이것을 정의하는 경우 사용하려는 라이브러리의 버전을 확인하거나 로컬 ICC 설치에서 라이브러리를 찾으십시오. C++ 03 라이브러리가 C++ 11 코드를 컴파일하기에 충분하다는 것은 확실하지 않습니다.

+0

부적을 부탁드립니다. – 111111

0

icpc는 그러한 상황을 경고한다. 이 일에주의를 기울이지 마십시오. 모든 것이 컴파일 될 것입니다. 이 -U__GXX_EXPERIMENTAL_CXX0X__ (해당하는 GCC 옵션)와 같이 그 중 하나를, 보는 컴파일러를 방지하기 위해 당신이 원하는 같은 소리 있도록

+0

아니요, 오류가 있습니다. 예를 들어 편집에 추가했습니다. – 111111