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?
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?
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 ++)
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
- 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.
- Sélectionnez Les Propriétés De Configuration, C/C++, De langue.
- 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
)
Visual Studio 2015 mise à Jour 3 ne prend pas en charge le C++17 fonctionnalité que vous recherchez (emplace_back()
retournant une référence).
Soutien Pour Le C++11/14/17 Caractéristiques (C++Moderne)
C++11/14/17 Fonctionnalités VS 2015 RTM
VS 2015 mise à Jour 2 de la STL C++17-si-loin Fonctionnalité Complète
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 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.