web-dev-qa-db-ja.com

Visual StudioでC ++ 17のコンパイルを有効にする方法

C++ 17の機能を使いたい.

Microsoft Visual StudioでC++ 14からC++ 17にコンパイルを切り替える方法を教えてください。

それともVSのリリースバージョンでは利用できませんか?

72
Tudvari

ドロップダウンが表示され(少なくともVS 2017.3.5以降)、特にC++ 17を選択できます。利用可能なオプションは(プロジェクト>プロパティ> C/C++>言語> C++言語標準)です。

  • ISO C++ 14規格msvcコマンドラインオプション:/std:c++14
  • ISO C++ 17規格msvcコマンドラインオプション:/std:c++17
  • 最新のドラフト標準。 msvcコマンドラインオプション:/std:c++latest
97
Johan Lundberg

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/ja-jp/cpp/build/reference/std-specify-language-standard-version

VS2017はサポートします:/std:[c++14|c++17|c++latest]今。これらのフラグはプロジェクトのプロパティページで設定できます。

Visual Studio開発環境でこのコンパイラオプションを設定するには

  1. プロジェクトの[プロパティページ]ダイアログボックスを開きます。詳細については、プロジェクトプロパティの操作を参照してください。
  2. [構成プロパティ]、[C/C++]、[言語]の順に選択します。
  3. C++言語標準で、ドロップダウンコントロールからサポートする言語標準を選択し、[OK]または[適用]を選択して変更を保存します。

CMake

Visual Studio 2017(15.7以降)はCMakeプロジェクトをサポートしています。 CMakeは、さまざまな方法で最新のC++機能を有効にすることを可能にします。最も基本的なオプションは、CMakeLists.txtに ターゲットのプロパティ を設定することで、最新のC++標準を有効にすることです。

add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
  PUBLIC
    # 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
)
25
Zingam
7
Remy Lebeau

既存のVisual Studio 2015ソリューションをVisual Studio 2017に持ち込み、それをc ++ 17ネイティブコンパイラでビルドする場合は、最初にソリューション/プロジェクトをv141にターゲット変更する必要があります。/C++ - >言語 - >言語標準)

4
WilliamClements