いくつかのクロスプラットフォームプロジェクト(Windows + Mac)でC++ 11の機能(たとえばauto
など)の使用を検討しています。 Windowsでは、Visual Studioは今後のC++ 11標準の一部をサポートするため、コードベースの一部を簡素化できるため、当然これらの機能の使用に興味があります。
しかし、私の知る限り、現在のXCodeバージョン(3.2.4 + GCC 4.2)は、C++ 11機能をまったくサポートしていません。 GCCバージョンまたはCLangバージョンを何らかの方法でアップグレードできますか?または、舌を噛んでAppleが将来新しいバージョンをパッケージ化するのを待つ必要がありますか?
Xcode 4.2はついにC++ 0Xのサポートを追加しました:
プロジェクトのビルド設定画面で、「すべて」オプションをオンにします。
[ビルドオプション]セクションで、コンパイラを[Apple LLVMコンパイラ3.0]に設定します。
「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で開始-多くのC++ 11機能がClangで利用可能になりました。 Xcodeに含まれています。
======= 2011年1月からの元の回答:=======(
インテルのコンパイラは、現時点で最もクリーンな方法かもしれません。 http://software.intel.com/en-us/articles/intel-composer-xe/
clangの有望ですが、特に安定していないか、注目されているwrt c ++ 0x機能。 c ++はclangにとって非常に新しいものです。
gcc:比較的成熟していますが、xcode用のコンパイラプラグインを作成および保守する必要があります。
カスタムスクリプトを指定することもできますが、それを維持するのは面倒です...アダプタツールをすべて作成して作成する場合を除きます。
クロスプラットフォームプロジェクト(MacOSX、iOS、gcc/linux、MSVC 10/windows用のLLVM)で、auto、decltype()、範囲ベースの「for(:)」が動作することがわかりました。
ラムダと可変長マクロは、LLVMの下ではまだ動作しないようです。