Я хочу использовать возможности C ++ 17.
Как переключить компиляцию с C ++ 14 на C ++ 17 в Microsoft Visual Studio?
Или это недоступно в релизных версиях VS?
c++
visual-studio
compilation
c++17
Tudvari
источник
источник
c++11
иc++14
?Ответы:
Теперь есть раскрывающийся список (по крайней мере, с 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
для включения последних функций - в настоящее время C ++ 17 с VS2017, VS2015 Update 3.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 г.): здесь описаны последние функции VS2017:
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017 поддерживает:
/std:[c++14|c++17|c++latest]
сейчас. Эти флаги можно установить на страницах свойств проекта:CMake :
Visual Studio 2017 (15.7+) поддерживает проекты CMake. CMake позволяет различными способами включать современные функции C ++. Самый простой вариант - включить современный стандарт C ++, установив свойство цели в CMakeLists.txt:
В случае интерфейсной библиотеки:
источник
Visual Studio 2015 с обновлением 3 не поддерживает функцию C ++ 17, которую вы ищете (
emplace_back()
возвращает ссылку).Поддержка функций C ++ 11/14/17 (современный C ++)
Возможности C ++ 11/14/17 в VS 2015 RTM
STL VS 2015 Update 2 на данный момент является C ++ 17.
Visual Studio 2015 с обновлением 3
Исправления STL в VS 2015 с обновлением 3
источник
Если вы переносите существующее решение Visual Studio 2015 в Visual Studio 2017 и хотите создать его с помощью собственного компилятора c ++ 17, вы должны сначала перенастроить решение / проекты на версию 141, ТОГДА появится раскрывающийся список, как описано выше (Свойства конфигурации -> C / C ++ -> Язык -> Стандарт языка)
источник
Версия Visual Studio 2019:
Выпадающее меню было перемещено в:
источник