C ++ 17 기능을 사용하고 싶습니다.
Microsoft Visual Studio에서 컴파일을 C ++ 14에서 C ++ 17로 어떻게 전환 할 수 있습니까?
아니면 VS의 릴리스 버전에서 사용할 수 없습니까?
C ++ 17 기능을 사용하고 싶습니다.
Microsoft Visual Studio에서 컴파일을 C ++ 14에서 C ++ 17로 어떻게 전환 할 수 있습니까?
아니면 VS의 릴리스 버전에서 사용할 수 없습니까?
답변:
이제 C ++ 17을 구체적으로 선택할 수있는 드롭 다운 (최소 VS 2017.3.5 이후)이 있습니다. 사용 가능한 옵션은 다음과 같습니다 (프로젝트> 속성> 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
최신 기능 활성화-현재 VS2017, VS2015 업데이트 3 기준 C ++ 17
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 년 10 월) : 최신 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 ++ 언어 표준의 드롭 다운 컨트롤에서 지원할 언어 표준을 선택한 다음 확인 또는 적용을 선택하여 변경 사항을 저장합니다.
CMake :
Visual Studio 2017 (15.7+)은 CMake 프로젝트를 지원합니다. CMake를 사용하면 다양한 방법으로 최신 C ++ 기능을 사용할 수 있습니다. 가장 기본적인 옵션은 CMakeLists.txt에서 대상의 속성 을 설정 하여 최신 C ++ 표준을 활성화하는 것입니다.
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 ++)
VS 2015 RTM의 C ++ 11 / 14 / 17 기능
Visual Studio 2019 버전 :
드롭 다운 메뉴가 다음으로 이동되었습니다.
c++11
및c++14
?