web-dev-qa-db-ja.com

XcodeでC ++ 11を使用できますか?

いくつかのクロスプラットフォームプロジェクト(Windows + Mac)でC++ 11の機能(たとえばautoなど)の使用を検討しています。 Windowsでは、Visual Studioは今後のC++ 11標準の一部をサポートするため、コードベースの一部を簡素化できるため、当然これらの機能の使用に興味があります。

しかし、私の知る限り、現在のXCodeバージョン(3.2.4 + GCC 4.2)は、C++ 11機能をまったくサポートしていません。 GCCバージョンまたはCLangバージョンを何らかの方法でアップグレードできますか?または、舌を噛んでAppleが将来新しいバージョンをパッケージ化するのを待つ必要がありますか?

85
villintehaspam

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でテストしています。

74
RichardLiu

======= 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用のコンパイラプラグインを作成および保守する必要があります。

カスタムスクリプトを指定することもできますが、それを維持するのは面倒です...アダプタツールをすべて作成して作成する場合を除きます。

8
justin

XcodeはGCCまたはClang C++コンパイラを使用します。これらのコンパイラでサポートされる機能はすべて公平です。 GCCのC++互換性ページは here で、Clang C++互換性ページは here です。

1
Barry Wark

クロスプラットフォームプロジェクト(MacOSX、iOS、gcc/linux、MSVC 10/windows用のLLVM)で、auto、decltype()、範囲ベースの「for(:)」が動作することがわかりました。

ラムダと可変長マクロは、LLVMの下ではまだ動作しないようです。

0
centaurian_slug