C++
でコード書く仕事をしているわけですが、書き始めるとC++11
の機能を使いたくなってきました。とくに、auto
と for 文の新しいシンタックスと、lambda。
そんなわけで使い始めましたが、ちょっとだけ填まったので二点ほど。
1. C++11
の機能を使うにはオプション指定が必要
C++11
のフィーチャを使うには、clang++
使うにしろ、g++
を使うにしろ、
-std=c++11 -stdlib=libc++
このオプションを両方を指定しないと、C++11
の機能は使えませんから、要注意です。CXX
にでも突っ込むのが正解のようです。
2. MacOS X では、LLVM 3.3 を入れるより XCode4.3の方が良さそう
私の理解では、C++11のためには、LLVM 3.3 を使うか、GCC 4.7 を使えば無問題だと思っていたのですが、どうも、LLVM 3.3 はOS Xでは、まだ噛み合わせが悪いところがあるようで、注意が必要です。
他のOSでLLVM3.3を使う場合は、まだ試していないですが、少なくとも、Mac OS X で Homebrew 経由で LLVM 3.3 を入れているとはまります。XCodeの最新使うのが正解のようです。Homebrew 経由で GCC 4.7.3 入れた場合は平気だった。
パッケージマネージャに、うっかりインストールされちゃうことがあるので要注意です。たとえば、doxygen
のインストールでlibclang
使うように設定してインストールすると、Homebrew君は親切にLLVM 3.3を入れてくれるので、気がつくとclang++
がこいつを向いていたりして。おかげで二日ほど悩みました。。。
ということで、C++な人は、C++11 使いましょ。昨今、cpprefjpなどという素晴らしいサイトもあるので、助かりますね。
ちなみに、C++ ポケットリファレンス はとても便利な本で、C++11 使う人は必携というぐらいオススメですが、残念ながら、この処理系毎のオプションの話が書いてないのでした。