2009-09-12 5 views
9

프로덕션 환경에서 GCC 4.4.0 C++0x 지원을 사용하는 사람이 있습니까? 최신 MinGW에서 사용하려고 생각하고 있지만 충분히 성숙한 것인지 잘 모르겠습니다.프로덕션 환경에서 GCC의 C++ 0x 모드를 사용 하시겠습니까?

내가 관심에 있어요 :

  • TR1 지원
  • 자동
  • 초기화 목록
+6

TR1 지원은 C++ 0x보다 선행하므로 안전해야합니다. 자동도 꽤 무해한 것 같습니다. 구현시 버그가 있더라도 런타임에 버그가 아닌 수정하기 쉬운 유형 오류로 나타날 가능성이 큽니다. – jalf

답변

4

IMHO, TR1 지원 및 auto은 안전합니다. auto의 경우 표준에 포함되는 첫 번째 기능 중 하나였으며 언어에 대한 상대적으로 작은 변화였습니다. 나는 그것을 사용하여 아무런 문제가 없을 것이다.

initializer lists을 사용하는 것에 대해 좀 더 주저 할 것입니다. 다른 포럼 (예 : comp.lang.C++, moderated)에서 그들의 행동에 대해 의문이 있으며, 표준의 발표에 더 가깝게 변경 될 수 있습니다.

4

내가 ++ 생산 0X 지원을 GCC 4.4.0 C를 사용하지 않는하지만 부스트 라이브러리 http://www.boost.org/의 도움으로 TR1 기능을 사용하고 있습니다.

부스트 라이브러리는 테스트를 통과했으며 프로덕션 환경에서 자주 사용됩니다. 나중에 C++ 0x 표준으로 변환하는 경우 포함 지시문 http://www.boost.org/doc/libs/1_40_0/doc/html/boost_tr1.html을 변경하면됩니다.

제 생각에는 표준이 끝날 때까지 부스트 라이브러리를 사용하는 것이 좋습니다. 그것은 훨씬 더 많은 컴파일러 독립적 인 방법입니다.

2

MinGW는 '-std = C++ 0x'로 컴파일되지 않습니다. 이상하게도, '-std = gnu ++ 0x'가 작동합니다. 어쨌든 그것은 버그가있는 것처럼 보이고 나는 그걸 의지하지 않을 것입니다.

+1

짐작하겠습니다. 오류는 vwsprintf와 같은 와이드 문자 기능이 없기 때문입니다. 그것은 -std = C++ 98 또는 -ansi에서도 발생합니다. 잘 알려진 MinGW 버그입니다. C++ 0x와 관련된 것은 없습니다. –

관련 문제