Posso usar o C ++ 11 com o Xcode?

Estou considerando o uso de alguns resources do C ++ 11 (como o auto por exemplo) em alguns projetos de plataforma cruzada (Windows + Mac). No Windows, o Visual Studio suporta partes do próximo padrão C ++ 11 que me permitiria simplificar partes da base de código, então naturalmente eu estaria interessado em começar a usar esses resources.

Mas, tanto quanto sei, a atual versão do XCode (3.2.4 + GCC 4.2) não suporta nenhum recurso do C ++ 11. Posso atualizar a versão do GCC ou a versão do CLang de alguma forma? Ou devo apenas morder minha língua e esperar que a Apple empacote uma nova versão em algum momento no futuro?

O Xcode 4.2 finalmente adicionou suporte para C ++ 0X:

  1. Na canvas de configurações de construção do projeto, ative as opções “Todos”.

  2. Na seção “Build Options”, defina o compilador como “Apple LLVM compiler 3.0”.

  3. Desça até a seção “Apple LLVM Compiler 3.0 – Language” e defina “C ++ Language Dialect” como “C ++ 0X” e “C ++ Standard Library” como “libc ++”.

O std :: move (), o construtor move e a referência R-Value são conhecidos por funcionar como esperado, e estou testando std :: thread e std :: atomic.

======= Atualização de 2012: =======

Comece com o Clang – Muitos resources do C ++ 11 agora estão disponíveis no Clang. Está incluído no Xcode.

======= Resposta original de janeiro de 2011: =======

O compilador da Intel pode ser o caminho mais limpo para ir neste momento. http://software.intel.com/pt-br/articles/intel-composer-xe/

clang é promissor, mas não é particularmente estável ou tem resources wrt c ++ 0x. O c ++ ainda é muito novo para o clang.

gcc: relativamente maduro, mas você terá que escrever e manter seus plugins de compilador para xcode.

você também pode especificar scripts personalizados, mas isso é difícil de manter … a menos que você faça tudo e crie uma ferramenta de adaptador.

O Xcode usa os compiladores GCC ou Clang C ++. Qualquer recurso suportado por esses compiladores é um jogo justo. A página de compatibilidade C ++ do GCC está aqui e a página de compatibilidade do Clang C ++ está aqui .

Eu encontrei auto, decltype (), baseado em intervalo “para (:)” trabalhar em um projeto de plataforma cruzada (LLVM para MacOSX, iOS, gcc / linux, MSVC 10 / windows).

As macros lambdas & variadic não parecem funcionar com a LLVM, mas infelizmente.