Xcode에서 C ++ 11을 사용할 수 있습니까? auto일부 크로스 플랫폼 프로젝트 (Windows + Mac)

auto일부 크로스 플랫폼 프로젝트 (Windows + Mac) 에서 일부 C ++ 11 기능 (예 : 예) 의 사용을 고려하고 있습니다 . Windows에서 Visual Studio는 코드베이스의 일부를 단순화 할 수있는 곧 출시 될 C ++ 11 표준의 일부를 지원하므로 자연스럽게 이러한 기능을 사용하는 데 관심이있을 것입니다.

그러나 내가 아는 한 현재 XCode 버전 (3.2.4 + GCC 4.2)은 C ++ 11 기능을 전혀 지원하지 않습니다. GCC 버전이나 CLang 버전을 어떻게 든 업그레이드 할 수 있습니까? 아니면 혀를 깨물고 애플이 언젠가 새로운 버전을 포장 할 때까지 기다려야할까요?



답변

Xcode 4.2는 마침내 C ++ 0X에 대한 지원을 추가했습니다.

  1. 프로젝트 빌드 설정 화면에서 “모두”옵션을 켭니다.

  2. “빌드 옵션”섹션에서 컴파일러를 “Apple LLVM 컴파일러 3.0″으로 설정합니다.

  3. “Apple LLVM Compiler 3.0-Language”섹션까지 아래로 스크롤하여 “C ++ Language Dialect”를 “C ++ 0X”로, “C ++ Standard Library”를 “libc ++”로 설정합니다.

std :: move (), 이동 생성자 및 R-Value 참조가 예상대로 작동하는 것으로 알려져 있으며 std :: thread 및 std :: atomic에서 테스트 중입니다.


답변

======= 2012 업데이트 : =======

Clang으로 시작-이제 Clang에서 많은 C ++ 11 기능을 사용할 수 있습니다. Xcode에 포함되어 있습니다.

======= 2011 년 1 월의 원래 답변 : =======

인텔의 컴파일러는 현재 가장 깔끔한 방법 일 수 있습니다.
http://software.intel.com/en-us/articles/intel-composer-xe/

clang의 유망하지만 특히 안정되지 않거나 wrt c ++ 0x 기능이 특징입니다. c ++는 여전히 clang의 새로운 기능입니다.

gcc : 상대적으로 성숙하지만 xcode 용 컴파일러 플러그인을 작성하고 유지 관리해야합니다.

사용자 지정 스크립트를 지정할 수도 있지만 유지 관리가 어렵습니다 … 모든 작업을 수행하여 어댑터 도구를 만들지 않는 한.


답변

Xcode는 GCC 또는 Clang C ++ 컴파일러를 사용합니다. 이러한 컴파일러가 지원하는 모든 기능은 공정한 게임입니다. GCC의 C ++ 호환성 페이지는 여기에 있고 Clang C ++ 호환성 페이지는 여기에 있습니다 .


답변

크로스 플랫폼 프로젝트 (MacOSX, iOS, gcc / linux, MSVC 10 / windows 용 LLVM)에서 auto, decltype (), range based “for (:)”를 찾았습니다.

람다 및 가변 매크로는 LLVM에서 아직 작동하지 않는 것으로 보입니다.


답변