Я хочу использовать возможности C ++ 17.
Как переключить компиляцию с C ++ 14 на C ++ 17 в Microsoft Visual Studio?
Или это недоступно в релизных версиях VS?
Я хочу использовать возможности C ++ 17.
Как переключить компиляцию с C ++ 14 на C ++ 17 в Microsoft Visual Studio?
Или это недоступно в релизных версиях VS?
Ответы:
Теперь есть раскрывающийся список (по крайней мере, с 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]
сейчас. Эти флаги можно установить на страницах свойств проекта:
Чтобы установить этот параметр компилятора в среде разработки Visual Studio
- Откройте диалоговое окно страницы свойств проекта. Для получения дополнительной информации см. Работа со свойствами проекта.
- Выберите Свойства конфигурации, C / C ++, Язык.
- В C ++ Language Standard выберите поддерживаемый языковой стандарт в раскрывающемся списке, затем нажмите OK или Применить, чтобы сохранить изменения.
CMake :
Visual Studio 2017 (15.7+) поддерживает проекты CMake. CMake позволяет различными способами включать современные функции C ++. Самый простой вариант - включить современный стандарт C ++, установив свойство цели в CMakeLists.txt:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# 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
)
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 в Visual Studio 2017 и хотите создать его с помощью собственного компилятора c ++ 17, вы должны сначала перенастроить решение / проекты на версию 141, ТОГДА появится раскрывающийся список, как описано выше (Свойства конфигурации -> C / C ++ -> Язык -> Стандарт языка)
Версия Visual Studio 2019:
Выпадающее меню было перемещено в:
c++11
иc++14
?