C ++ 17の機能を使いたい。
Microsoft Visual StudioでコンパイルをC ++ 14からC ++ 17に切り替えるにはどうすればよいですか?
または、VSのリリースバージョンでは利用できませんか?
C ++ 17の機能を使いたい。
Microsoft Visual StudioでコンパイルをC ++ 14からC ++ 17に切り替えるにはどうすればよいですか?
または、VSのリリースバージョンでは利用できませんか?
回答:
ドロップダウンがあり(少なくともVS 2017.3.5以降)、ここで具体的にC ++ 17を選択できます。使用可能なオプションは次のとおりです(プロジェクト>プロパティ> C / C ++>言語> C ++言語標準)。
/std:c++14
/std:c++17
/std:c++latest
(たぶん、C ++ 20がリリースされ、Visual Studioでより完全にサポートされるようになると、/std:c++20
)
-std:c++14
、-std:c++17
および-std:c++latest
機能します。たとえば、手動でコンパイラオプションを入力する場合(VS2017でテスト済み)。
-
する/std:
スイッチの代わりに具体的に意味しますか?
gcc
またはから来たときにメリットがわかりclang
ます。そうすれ-
ば、煩わしさが軽減されます(ただし、構文は(の:
代わりに=
)若干異なります)。
MSBuild(Visual Studioプロジェクト/ソリューション* .vcproj / *。sln):
プロジェクト設定の追加オプションに追加:/std:c++latest
最新の機能を有効にします-現在、VS2017、VS2015 Update 3の時点でC ++ 17。
https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
非標準のC ++拡張を無効にし、VS2017での標準への準拠を有効にします。
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
編集(2018年10月): VS2017の最新の機能は次のとおりです。
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017がサポート:/std:[c++14|c++17|c++latest]
現在。これらのフラグは、プロジェクトのプロパティページで設定できます。
Visual Studio開発環境でこのコンパイラオプションを設定するには
- プロジェクトの[プロパティページ]ダイアログボックスを開きます。詳細については、プロジェクトプロパティの操作を参照してください。
- 「構成プロパティー」、「C / C ++」、「言語」を選択します。
- C ++言語標準で、ドロップダウンコントロールからサポートする言語標準を選択し、[OK]または[適用]を選択して変更を保存します。
CMake:
Visual Studio 2017(15.7以降)は、CMakeプロジェクトをサポートしています。CMakeは、さまざまな方法で最新のC ++機能を有効にすることを可能にします。最も基本的なオプションは、CMakeLists.txtでターゲットのプロパティを設定して、最新のC ++標準を有効にすることです。
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Enable C++17 standard compliance
CXX_STANDARD 17
)
インターフェイスライブラリの場合:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
Visual Studio 2015 Update 3は、探している(emplace_back()
参照を返す)C ++ 17機能をサポートしていません。
既存のVisual Studio 2015ソリューションをVisual Studio 2017に組み込み、c ++ 17ネイティブコンパイラでビルドする場合は、最初にソリューション/プロジェクトをv141にリターゲットする必要があります。すると、上記のようにドロップダウンが表示されます(構成プロパティ-> C / C ++->言語->言語標準)
Visual Studio 2019バージョン:
ドロップダウンメニューが次の場所に移動されました。
c++11
とc++14
?