[C++] 컴파일러 C++ 표준 활성화(troubleshooting)

yeseo·2024년 12월 10일

C++

목록 보기
2/3

문제

C++11 extension과 관련된 경고문과 함께 실행이 안됨

(base) yeseo@yeseo Programmers % cd "/Users/yeseo/Documents/Programmers/" && c++ ReverseVector.cpp -o ReverseVector && "/Users/yeseo/Documents/Programmers/"ReverseVector
ReverseVector.cpp:15:15: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
    for(int i : num_list) {
              ^
ReverseVector.cpp:22:15: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
    for(int i : num_list) {
              ^
2 warnings generated.

원인

C++11부터 포함된 기능인 for를 사용했지만, 표준으로 등록해주지 않았기 때문에 발생


해결

C++11 이상의 표준을 명시적으로 등록해주기 위해 -std=c++(버전) 플래그를 추가
나는 C++17을 사용하고 있으므로 아래와 같이 명령어를 수정했다.

cd "/Users/yeseo/Documents/Programmers/" && g++ -std=c++17 ReverseVector.cpp -o ReverseVector && "/Users/yeseo/Documents/Programmers/"ReverseVector

0개의 댓글