Я хочу использовать возможности С++ 17.
Как переключить компиляцию с С++ 14 на С++ 17 в Microsoft Visual Studio?
Или он не доступен в версиях версий VS?
Я хочу использовать возможности С++ 17.
Как переключить компиляцию с С++ 14 на С++ 17 в Microsoft Visual Studio?
Или он не доступен в версиях версий VS?
Там теперь выпадающий (по крайней мере, начиная с VS 2017.3.5), где вы можете специально выбрать C++ 17. Доступны следующие параметры (в разделе "Проект"> "Свойства"> "C/C++>" Язык "> C++" Стандарт языка ").
/std:C++14
/std:C++17
/std:C++latest
MSBuild (проект/решение Visual Studio *.vcproj/*. Sln):
Добавьте к дополнительным параметрам в настройках проекта: /std:c++latest
для включения последних функций - в настоящее время C++ 17 по состоянию на VS2017, обновление VS2015 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 Update 3 не поддерживает функцию С++ 17, которую вы ищете (emplace_back()
возврат ссылки).
Поддержка для С++ 11/14/17 Особенности (современный С++)
С++ 11/14/17 Особенности В VS 2015 RTM
VS 2015 Update 2s STL - это С++ 17-so-far Feature Complete
Если вы переносите существующее решение Visual Studio 2015 в Visual Studio 2017 и хотите создать его с помощью собственного компилятора C++ 17, сначала необходимо переназначить решение/проекты на v141, ТО затем выпадающий список будет выглядеть, как описано выше (Свойства конфигурации → C/C++ → Язык → Стандарт языка)
Смотрите эту документацию в MSDN