
C++ 역사
1998년 C++98이 출시된 이후로 큰 업데이트가 없다가, 2011년에 C++11이 소개되면서 새로운 기능과 개선 사항을 도입하여 언어를 현대화하고 현대 소프트웨어 개발 방식에 맞추었기 때문이다. 그렇기에 사람들은 C++11을 "Modern C++"라고 부른다.

C++98/02
- 1998년에 표준화, 2003년에 수정 적용
C++ 최초의 표준화. 일반적인 C++ 코딩 내용이 대부분 포함.
C++11/14
- 2011년 표준화, 2014년 추가로 개선되어 발표
이때부터 모던 C++이라고 불리게 됨. - C++11 표준을 시작으로 여러 최신 기능들을 추가. C++11 및 그 이후의 표준인 C++14, 17 등을 묶어 모던 C++이라고 부름.
C++17
- 이전 버전에서 C++ STL(Standard Template Library)의 추가 수정, 알고리즘 헤더의 몇몇 알고리즘 명시적 병렬화 기능 문법적 개선.
- 제거된 기능: std::auto_ptr, std::random_shuffle, 오래된 함수 어댑터와 같이 사용 중단된 표준 라이브러리의 타입과 함수 제거
버전별 개선점
C++ 11:
- Auto 키워드를 사용한 자동 타입 추론
- 람다 표현식을 사용한 인라인 함수 객체
- Range-based for loop을 사용한 반복 처리
- 멀티스레딩 지원을 위한 Thread 라이브러리
- Move semantics을 사용한 효율적인 리소스 관리
- nullptr 키워드를 사용한 null 포인터 값
- 자동 메모리 관리를 위한 스마트 포인터 (unique_ptr, shared_ptr, weak_ptr)
C++ 14:
- 템플릿화된 함수 호출 연산자를 갖는 람다 표현식을 위한 Generic lambdas
- 템플릿 변수를 위한 Variable templates
- 일반 함수에서의 반환 타입 추론
- constexpr 함수 개선 (변수 및 함수 템플릿)
- 이진 리터럴과 숫자 구분자를 사용한 가독성 향상
- 함수 및 타입을 표시하기 위한 [[deprecated]] 속성
C++17
- 구조화된 바인딩을 위한 Structured bindings
- 컴파일 타임 조건문을 위한 constexpr if
- 가변 인자 템플릿 메타 프로그래밍을 위한 Fold expressions
- 클래스 템플릿의 인수 추론
- 중첩된 네임스페이스 정의를 통한 보다 간결하고 구조화된 네임스페이스 사용
- 표준 라이브러리 개선 (예: std::optional, std::variant)
C++ 11에 추가된 기능 정리 : https://wecandev.tistory.com/81
C++11 에 추가된 기능 정리
C++ 11 C++ 11에서 추가된 기능들을 정리하고자 한다. 1. auto 컴파일 시에 자동으로 타입을 정해주는 키워드 auto i = 10; // i는 int 타입 auto l = 10L; // i는 long 타입 auto* pi = &i; // i는 int* 타입 auto* pc = new My
wecandev.tistory.com
C++ 14에 추가된 기능 정리 : https://wecandev.tistory.com/82
C++14 에 추가된 기능 정리
C++14 C++ 14의 새로운 기능들을 정리하고자 한다. 1. Binary literal Binary literal은 2진법 숫자를 나타내는 표기법이다. 기존의 16진수 앞에 0x가 붙은것처럼 2진수 앞에는 0b가 붙는다. 또한 ' 문자로 숫자
wecandev.tistory.com
'IT > C++' 카테고리의 다른 글
| [C++] Modern C++ 11/14 핵심 내용 정리 (2) | 2025.08.25 |
|---|---|
| [Effective C++] 항목 2 : C++을 언어들의 연합체로 바라보는 안목은 필수 (0) | 2025.02.07 |
| [Effective C++] 항목 1 : C++을 언어들의 연합체로 바라보는 안목은 필수 (0) | 2025.02.07 |