Updated:

less than 1 minute read

1979년 : C with Classes

  • Bjarne Stroustrup가 객체 지향적인 언어인 Simula의 컨셉을 C언어에 접목


1983년 : C++

  • 가상 함수, 연산자 오버로딩, 참조, const, new/delete 연산자 등을 포함한 기능들이 추가하며 클래식 C++의 틀 완성


1989년 : C++ 2.0

  • 다중 상속, 추상 클래스, static 멤버 함수, const 멤버 함수 및 protected 멤버 등의 기능들이 추가


1998년 : C++98(ISO/IEC 14882:1998)

  • 첫 공식 표준안


2003년 : C++03(ISO/IEC 14882:2003

  • 표준화 문서상 불명확했던 것을 교정한 버전
    • vector가 연속된 메모리를 할당


2007년 : C++TR1(ISO/IEC TR 19768:2007)

  • 표준 라이브러리를 확장하는 것을 골자로 하는 C++ 테크니컬 리포트의 초안이 작성
  • 표준안은 아니므로 컴파일러 제작사의 선택적인 확장안
  • std가 아닌 std::tr1 네임스페이스에 포함
  • 실험적인 성격의 사양은 std::experimental이라는 네임스페이스에 포함


2011년 : C++11(ISO/IEC 14882:2011)

  • r-value/move, constexpr, std::initializer_list, Range-based for loop, lambda expression, 스마트 포인터, 정규표현식, 멀티쓰레드 등등 중요한 신 개념과 편의 기능들이 많이 추가
  • 업데이트가 잘 완성된 후에 발표하려고 했던 접근 방식을 버리고 3년에 한 번씩 그때까지 정리된 업데이트만 발표하는 것으로 결정


2014년 : C++14(ISO/IEC 14882:2014)

  • C++11을 다듬고 확장하는 마이너 표준안


2017년 : C++17(ISO/IEC 14882:2017)

  • 파일 시스템, STL 병렬 알고리즘 처리 등이 추가
  • deprecated 판정을 받은 std::auto_ptr 등이 삭제


2020년 : C++20

  • 코루틴, 모듈 등이 추가