169 votes

Comment activer la compilation C ++17 dans Visual Studio?

Je veux utiliser les fonctionnalités C ++ 17.

Comment passer de la compilation de C ++ 14 à C ++ 17 dans Microsoft Visual Studio?

Ou ce n'est pas disponible dans les versions de VS?

238voto

Johan Lundberg Points 5835

Il y a maintenant un menu déroulant (du moins depuis VS 2017.3.5) où vous pouvez sélectionner spécifiquement C ++17. Les options disponibles sont (sous projet> Propriétés> C / C ++> Langage> Langage C ++)

  • Norme ISO C ++14 (/ std: c ++14)
  • Norme ISO C ++17 (/ std: c ++17)
  • Le dernier projet de norme (/ std: c ++ last)

36voto

Zingam Points 320

MSBuild (projet Visual Studio/solution *.vcproj/*.sln):

Ajouter à d'autres options dans les Paramètres de Projet: /std:c++latest pour activer les fonctionnalités les plus avancées actuellement C++17 de VS2017, VS2015 mise à Jour 3.

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

/permissive- désactivera non-standard C++ extensions et permettra de conformité standard dans VS2017.

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

EDIT (Oct 2018): La dernière VS2017 fonctionnalités sont documentées ici:

https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version

VS2017 prend en charge: /std:[c++14|c++17|c++latest] maintenant. Ces indicateurs peuvent être définis via les pages de propriétés du projet:

Pour définir cette option du compilateur dans le développement Visual Studio environnement

  1. Ouvrez les Pages de propriétés du projet boîte de dialogue. Pour plus de détails, voir le Travail les Propriétés du Projet.
  2. Sélectionnez Les Propriétés De Configuration, C/C++, De langue.
  3. En Langage C++ Standard, choisissez la langue standard à soutien à partir du menu déroulant, puis cliquez sur OK ou sur Appliquer pour enregistrer vos modifications.

CMake:

Visual Studio 2017 (15.7+) prend en charge CMake projets. CMake permet d'activer le C++ moderne dispose de diverses manières. La plupart des options de base est de permettre à un moderne standard C++ par la définition d'une cible de propriété dans CMakeLists.txt:

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

Dans le cas d'une bibliothèque d'interface:

add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
  INTERFACE
    # Enable C++17 standard compliance
    cxx_std_17
)

10voto

Remy Lebeau Points 130112

6voto

WilliamClements Points 11

Si vous importez une solution Visual Studio 2015 existante dans Visual Studio 2017 et que vous souhaitez la construire avec le compilateur natif c ++17, vous devez tout d’abord rediriger la solution / les projets vers v141, ALORS le menu déroulant apparaîtra comme décrit ci-dessus (Propriétés de configuration -> C / C ++ -> Langue -> Langage Standard)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X