読者です 読者をやめる 読者になる 読者になる

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

XCodeでC++11を使う方法

最新コンパイラへの対応も早いXCodeならどこかのVC++とは違って、ちゃんと最新規格C++11への対応も万全だろう、と、そう考えていたのですが、地味に30分くらいはまってしまったので、メモを残しておきます。日本語情報として上に来てくれれば良いのですが。

XCodeはデフォルトではC++11は対応していない

残念ながら、まだ最新規格はデフォルトにはなっていませんです。というわけで、例えば普通にshared_ptrとかを入れると以下のようになって泣けます。
f:id:posaunehm:20120225132315p:image

コンパイラオプションを触りましょう。LLVMでよいなら。

以下のstack overflow参照

Xcode 4.2 had finally added support for C++0X:
  1. In the project build settings screen, switch on "All" options.
  2. In the "Build Options" section, set compiler to "Apple LLVM compiler 3.0".
  3. Scroll down to "Apple LLVM Compiler 3.0 - Language" section and set "C++ Language Dialect" to "C++0X" and "C++ Standard Library" to "libc++".

ということで、BuildSetting画面を引っ張り出してきて、ググッと下へスクロール、記載のプロパティを変更します。こんな感じになりますね。
f:id:posaunehm:20120225132709p:image

これでビルド通るようになります。やったね!
まぁ最新規格に常に対応してるわけじゃないんですけどね。どこぞのVCよりかはよっぽどの対応状況ですっていうかrangebased_forが使えないとか馬鹿なの死ぬのおまえんとこが作ったC#の爪の垢でも煎じて飲みやがれ

参考:gcc道はシグルイなり(XCodeだとね)

プラグイン、作ってますね。。。

まぁ、新OSにくっついてきっとXCodeもアップデートされるので、そこに期待しときましょう。あ、一応VC11にも。