Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

GCC의 C++ 표준 지원: -std 옵션으로 표준 선택하기

GCC는 여러 ISO C++ 표준에 해당하는 다양한 C++ 방언(dialect)을 지원하며, 컴파일 시 어떤 표준을 적용할지는 -std= 명령줄 옵션으로 선택할 수 있습니다.

GCC가 지원하는 C++ 표준

C++98 / C++03

1998년에 제정된 최초의 ISO C++ 표준으로, 2003년 개정판인 C++03과 이후의 결함 보고서(defect report)까지 완전히 지원합니다.

C++11

당시 C++0x로 불리던 2011년 C++ 표준을 GCC 4.8.1에서 처음으로 완전하게 구현했습니다. 자동 타입 추론(auto), 람다(lambda), 스마트 포인터 등 현대적인 기능이 대거 도입된 버전입니다.

C++14

2014년에 발표된 C++ 표준 개정판을 완전히 지원합니다. 일반화된 람다(generic lambda), 변수 템플릿(variable template) 등 C++11의 편의성을 한층 확장한 기능들이 포함되어 있습니다.

C++17

2017년 발표가 예상되던 차기 C++ 표준에 대해 실험적으로 지원합니다. 구조적 바인딩(structured binding), std::optional, if constexpr 같은 기능이 새롭게 추가되었습니다. 참고로 최신 GCC 버전에서는 C++17은 물론 그 이후의 표준까지도 안정적으로 지원하고 있습니다.

-std 옵션 사용 방법

-std= 명령줄 옵션을 지정하면 위에서 소개한 다양한 표준 지원 수준을 활용할 수 있습니다. 예를 들어, 파일을 C++11 표준으로 컴파일하려면 다음과 같이 입력합니다.

$ g++ -std=c++11 my_file.cpp

이처럼 -std= 뒤에 원하는 표준 이름(c++98, c++11, c++14, c++17 등)을 붙이면, 해당 표준에 맞는 문법과 라이브러리 기능을 사용하여 코드를 컴파일할 수 있습니다.