Linuxではgccを更新して-std = c ++ 17を取得できますが、Macでは同じことができません。 MacでC++ 17を入手するために更新できるClangのバージョンや他の代替手段はありますか?助けてください。ありがとう。
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
を試してください。いずれかが動作するはずです。
たぶん、次を使用してxcodeコマンドツールをインストールする必要があります。
xcode-select --install
V17標準は、デフォルトで Xcode 1 で提供され、標準とバリアントの両方のフレーバーを提供します。
ビルド設定経由:
CLANG_CXX_LANGUAGE_STANDARD:C++ 17/GNU ++ 17
CLI:
-std = c ++ 17
-std = gnu ++ 17