86

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

しかし、私が知る限り、現在のXCodeバージョン(3.2.4 + GCC 4.2)はC++11機能をまったくサポートしていません。どういうわけかGCCバージョンまたはCLangバージョンをアップグレードできますか?それとも、私はただ舌を噛んで、Appleが将来新しいバージョンをパッケージ化するのを待つべきですか?

4

4 に答える 4

76

Xcode4.2はついにC++0Xのサポートを追加しました。

  1. プロジェクトビルド設定画面で、「すべて」オプションをオンにします。

  2. 「ビルドオプション」セクションで、コンパイラを「AppleLLVMコンパイラ3.0」に設定します。

  3. 「AppleLLVMコンパイラ3.0-言語」セクションまでスクロールダウンし、「C++言語方言」を「C++ 0X」に、「C++標準ライブラリ」を「libc++」に設定します。

std :: move()、moveコンストラクター、およびR-Value参照は期待どおりに機能することがわかっており、std::threadとstd::atomicでテストしています。

于 2011-10-17T09:40:07.277 に答える
9

======= 2012年の更新:=======

Clangから始める-多くのC++11機能がClangで利用できるようになりました。Xcodeに含まれています。

======= 2011年1月の元の回答:=======

現時点では、Intelのコンパイラが最もクリーンな方法かもしれません。 http://software.intel.com/en-us/articles/intel-composer-xe/

clangの有望ですが、特に安定していないか、c++0x機能を備えていません。c++はまだclangにとって非常に新しいものです。

gcc:比較的成熟していますが、xcode用のコンパイラプラグインを作成して維持する必要があります。

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

于 2011-01-02T00:08:05.933 に答える
1

XcodeはGCCまたはClangC++コンパイラを使用します。これらのコンパイラでサポートされている機能はすべて公正なゲームです。GCCのC++互換性ページはここにあり、ClangC++互換性ページはここにあります。

于 2011-01-01T19:09:22.770 に答える
0

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

ラムダと可変個引数マクロは、残念ながらLLVMではまだ機能していないようです。

于 2011-11-27T04:51:01.283 に答える