이전에 만들어 둔 프로젝트를 리빌딩 하다가 발견한것.

 

 

* 기본적으로 C++에서 현재 C++ 표준 버전을 확인하는건 이미 예약된 __cplusplus 매크로로 가능한것으로 알려져있다.

 

하지만 뭐가 문제인건지, Visual Studio에서 C++를 사용시, 현재 버전을 몇으로 설정하던 무조건 199711 (=C++98)로만 나온다.

 

검색해보니, 이것에 대한 원인은 못찾았고, 대신 해결방안을 찾았다.

 

https://docs.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=vs-2019

 

/Zc:__cplusplus (Enable updated __cplusplus macro)

/Zc:__cplusplus (Enable updated __cplusplus macro) In this article --> The /Zc:__cplusplus compiler option enables the __cplusplus preprocessor macro to report an updated value for recent C++ language standards support. By default, Visual Studio always ret

docs.microsoft.com

해당 페이지에서처럼, /Zc:__cplusplus 명령어를 추가해주면, __cplusplus 매크로가 실제 버전에 맞게 잘 작동한다는 것이다.

 

자 그래서. 이걸 어디다 집어넣어야 하는가.

 

사용중인 Visual Studio가 한글버전이어서 살짝 헤멨는데, 이걸 검색해서 보는 분들은 조금이나마 덜 헤메시라고 남겨둔다.

 

 

1. 프로젝트 > 프로젝트 속성 클릭

맨 아래의 스패너모양을 누르면 된다.

 

2. 속성 > C/C++ > 명령줄 (=Commend Line)으로 이동.

 

3. 명령줄에 '/Zc:__cplusplus' 입력

그냥 뭐 이런식으로 집어넣으시고 적용누르시면 된다.

 

4. 체크

적용전

 

적용후 1 C++ 버전이 C++17로 인식되어 if문 아래의 구문이 활성화되었다.
적용후 2 C++ 버전을 14로 맞추었을때, C++14로 정상인식된다.

 

언젠가 좀 써먹을일이 있을거같아 기록해둔다.

'프로그래밍 > C/C++' 카테고리의 다른 글

포인터 변수 사용시 데이터 오염 문제  (0) 2020.11.28
Const 키워드.  (0) 2020.08.18
오늘의 실수.  (0) 2020.03.29
기록 #1  (0) 2020.01.18
Jsoncpp 라이브러리 사용 관련  (0) 2020.01.01

+ Recent posts