
C++는 시대의 요구에 맞게 꾸준히 발전해온 언어다. 이 글에서는 각 C++ 표준 버전이 언제 나왔고, 어떤 주요 기능들이 추가되었는지를 간결하게 정리해본다. C++ 개발자로서 어느 버전을 사용하는지, 어떤 기능을 쓸 수 있는지를 정확히 아는 건 매우 중요하다.
C++ 표준은 ISO(국제표준화기구)에서 관리하며, 언어의 문법, 의미론, 표준 라이브러리 등을 정의한다. 새로운 표준이 나올수록 언어는 더 강력하고 현대적인 방향으로 발전해왔다.
모던 C++의 시작이라 불린다.
auto x = 10; // int로 추론
• 범위 기반 for 루프
for (int n : vec) { std::cout << n; }
• 람다 함수
auto add = [](int a, int b) { return a + b; };
• 스마트 포인터
std::unique_ptr<int> ptr = std::make_unique<int>(10);
• nullptr / rvalue 참조 / move semantics
• 멀티스레드 표준 라이브러리
std::thread t([](){ std::cout << "Thread"; });
t.join();
C++11을 다듬은 마이너 업그레이드
auto add = [](auto a, auto b) { return a + b; };
int b = 0b1010;
더 간결하고 읽기 쉬운 코드 작성을 위한 개선
if (auto it = map.find(key); it != map.end()) { ... }
auto [key, value] = std::pair{"A", 1};
C++의 대규모 리뉴얼. 더욱 강력해진 템플릿, 범위 기반 프로그래밍, 비동기 처리까지
template<typename T>
concept Addable = requires (T a, T b) {
{ a + b } -> std::same_as<T>;
};
auto evens = numbers | std::views::filter([](int n) { return n % 2 == 0; });
std::future<int> async_value(int x) {
co_return x * 2;
}
std::format, constinit, consteval 등C++ 표준은 단순히 문법 변화가 아니라 프로그래밍 패러다임의 진화를 보여주는 지표다. 현재 사용하는 컴파일러가 어떤 버전을 지원하는지, 각 표준이 도입한 기능들을 잘 알고 활용하는 것이 중요하다.