web-dev-qa-db-ja.com

MacでC ++ 17を有効にする方法

Linuxではgccを更新して-std = c ++ 17を取得できますが、Macでは同じことができません。 MacでC++ 17を入手するために更新できるClangのバージョンや他の代替手段はありますか?助けてください。ありがとう。

22
TheBigMalaka

10.11 El Capitan、Xcode 7.3.1では、clangが次のように更新されました。

Apple LLVM version 7.3.0 (clang-703.0.31)

これは、llvmバージョン3.8とほぼ同等です。 clang++には-std=c++17オプションはありませんが、-std=c++1zは現在は正常に機能していますが、C++ 1zの一部の機能のみをサポートしています。

Gccの場合、次の方法で非常に新しいものをインストールできます。

brew install gcc --HEAD

gcc-6.1をインストールします(2016.8)。このgccではC++ 17のサポートが制限されており、-std=c++17で有効にできます。


更新:

Appleのclangの対応するllvmバージョンは最近明確ではなく、3.9 +または4+である必要があります。詳細については、 このwikiページ を確認してください。

brew install gcc --HEADは常にmac/homebrewで機能し、多くの実験的な機能を備えた最先端のgnu gccを提供します。一方、通常のbrew install gccは、ほとんどのc ++ 17機能をサポートするgccをインストールする必要があります。

言語の標準引数については、異なるコンパイラに対して-std=c++17および-std=c++1zを試してください。いずれかが動作するはずです。

20
halfelf

リポジトリに何らかの問題がある場合は、ソースからgccをインストールできます(まったく複雑ではありません)。

mac os X のインストールプロセス。ここでは linux のインストールプロセスです。それが役に立てば幸い。

2
vianney

たぶん、次を使用してxcodeコマンドツールをインストールする必要があります。

xcode-select --install
0
Galley

V17標準は、デフォルトで Xcode 1 で提供され、標準とバリアントの両方のフレーバーを提供します。

ビルド設定経由:

CLANG_CXX_LANGUAGE_STANDARD:C++ 17/GNU ++ 17

CLI:

-std = c ++ 17

-std = gnu ++ 17

0
DBrown