web-dev-qa-db-ja.com

Mac OSXのXcodeでC ++ 17を有効にするにはどうすればよいですか?

OSX High Sierra(10.13.5)のXcode(9.4.1)でC++ 17を有効にするにはどうすればよいですか?

11
claytonjwong

OSX High Sierra(10.13.5)のXcode(9.4.1)でC++ 17を使用する手順:

  1. Xcodeで既存のC++プロジェクトを開くか、新しいC++プロジェクトを作成します
  2. 「プロジェクトナビゲータを表示」ボタンをクリックします。 Xcodeウィンドウの左上のセクション、ウィンドウの最小化/最大化/閉じるボタンのすぐ下にあります。これは一番左のアイコンで、フォルダーのように見えます。
  3. [ビルド設定]をクリックし、下にスクロールして[Apple LLVM 9.0-言語-C++]セクションを見つけて展開します。
  4. C++言語の方言コンボボックスの選択を「C++ 17 [-std = c ++ 17]」に変更します

Xcode Build Settings

検証手順:

__cplusplusを出力すると、201703が表示され、constexprなどのC++ 17機能をコンパイルできます。

template<class T>
int compute(T x) {
    if constexpr( supportsAPI(T{}) ) {
        // only gets compiled if the condition is true
        return x.Method();
    } else {
        return 0;
    }
}

int main(){
    cout << __cplusplus << endl;
    return 0;
}

出力:

201703
Program ended with exit code: 0
16
claytonjwong