wake-up-neo.com

Wie aktiviere ich die C ++ 17-Kompilierung in Visual Studio?

Ich möchte C++ 17-Funktionen verwenden.

Wie kann ich in Microsoft Visual Studio die Kompilierung von C++ 14 auf C++ 17 umstellen?

Oder ist es in Release-Versionen von VS nicht verfügbar?

80
Tudvari

Spätestens seit VS 2017.3.5 gibt es ein Dropdown-Menü, in dem Sie C++ 17 gezielt auswählen können. Die verfügbaren Optionen sind (unter Projekt> Eigenschaften> C/C++> Sprache> C++ Language Standard)

  • ISO C++ 14 Standard. msvc Befehlszeilenoption: /std:c++14
  • ISO C++ 17 Standard. msvc Befehlszeilenoption: /std:c++17
  • Der neueste Normentwurf. msvc Befehlszeilenoption: /std:c++latest
106
Johan Lundberg

MSBuild (Visual Studio-Projekt/-Lösung *. Vcproj/*. Sln) :

Zu zusätzlichen Optionen in den Projekteinstellungen hinzufügen: /std:c++latest, um die neuesten Funktionen zu aktivieren - derzeit C++ 17 ab VS2017, VS2015 Update 3.

https://blogs.msdn.Microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/

/permissive- deaktiviert nicht standardmäßige C++ - Erweiterungen und aktiviert die Standardkonformität in VS2017.

https://blogs.msdn.Microsoft.com/vcblog/2016/11/16/permissive-switch/

EDIT (Okt 2018): Die neuesten VS2017-Funktionen sind hier dokumentiert:

https://docs.Microsoft.com/de-de/cpp/build/reference/std-specify-language-standard-version

VS2017 unterstützt: /std:[c++14|c++17|c++latest] jetzt. Diese Flags können über die Eigenschaftenseiten des Projekts gesetzt werden:

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Arbeiten mit Projekteigenschaften.
  2. Wählen Sie Konfigurationseigenschaften, C/C++, Sprache.
  3. Wählen Sie in C++ Language Standard den zu unterstützenden Sprachstandard aus der Dropdown-Liste aus und klicken Sie dann auf OK oder Übernehmen, um Ihre Änderungen zu speichern.

CMake :

Visual Studio 2017 (15.7+) unterstützt CMake-Projekte. Mit CMake können moderne C++ - Funktionen auf verschiedene Arten aktiviert werden. Die grundlegendste Option besteht darin, einen modernen C++ - Standard zu aktivieren, indem Sie die Eigenschaft eines Ziels in CMakeLists.txt festlegen:

add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
  PROPERTY
    # Enable C++17 standard compliance
    CXX_STANDARD 17
)

Im Fall einer Schnittstellenbibliothek:

add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
  INTERFACE
    # Enable C++17 standard compliance
    cxx_std_17
)
28
Zingam
8
Remy Lebeau

Wenn Sie eine vorhandene Visual Studio 2015-Lösung in Visual Studio 2017 einbinden und diese mit dem nativen C++ 17-Compiler erstellen möchten, sollten Sie zuerst die Lösung/Projekte auf v141 neu ausrichten. Anschließend wird das Dropdown-Menü wie oben beschrieben angezeigt (Konfigurationseigenschaften -> C/C++ -> Sprache -> Sprachstandard)

5
WilliamClements