Xcode で C++11 を使えるようにする - C++ プログラミング

PROGRAM


Xcode で C++11 を使えるようにする

Xcode 4.6 では、Objective-C++ や純粋な C++ で、C++11 規格のほとんどを使うことができます。

ただし、少し前の Xcode のプロジェクトの場合、C++11 の機能を使うためのコンパイルオプションが指定されていない場合があります。

 

そのような場合、C++11 の機能をコンパイルしようとすると、コンパイルエラーが発生します。

たとえば <utility> ヘッダーをインクルードすると使えるようになるはずの std::move が "No member named 'move' in namespace 'std'" というエラーでコンパイルできないような場合は、コンパイルオプションで C++11 が有効化されていません。

 

C++11 コンパイルオプションを設定する

Xcode で C++11 を使うためには、プロジェクトの "Build Settings" を調整します。

ここの "Apple LLVM compiler 4.2 -Language" のカテゴリにある "C++ Language Dialect" と "C++ Standard Library" の 2 つをそれぞれ、Compiler Default ではなく、次のものに変更します。

C++ Language Dialect GNU++11 [-std=gnu++11]
C++ Standard Library libc++ (LLVM C++ standard library with C++11 support)

このようにコンパイルオプションを変更することで、C++11 で実装されたライブラリを Xcode で使えるようになります。


[ もどる ]