이것은 문서의 이전 버전입니다!


C++0x

C++의 새 버전으로 계획되고 있는 표준.1) 본래는 2009년 발표를 목표로 하고 수년간 표준화 작업을 거쳤지만 역시나 지연에 지연을 거듭하며 C++0x를 C++1x로 바꿔야 할 판이 되었다. (C1x를 참고) 이걸 두고 Bjarne Stroustrup이 0x가 그 0x가 아니라 16진수 리터럴이라고 농을 치고 있다.2) 최근의 Herb Sutter의 글에 따르면 2011년 여름 발표로 거의 확정된 것 같다.

가장 크게 보이는 변경점들:

  • auto 키워드와 decltype() 타입 생성자. (후자는 원래 typeof였지만 벤더마다 의미가 제각각이라고 이름을 아예…)
  • nullptr 키워드.
  • 가변 인자 템플릿. 사실상 튜플을 언어의 일부로 넣는 것에 거의 대응됨.
  • 템플릿 문법에서 닫는 > >>>로 써도 오류가 나지 않음.
  • 익명 함수 문법 지원. 클로저는 선택적으로 사용할 수도 있고 하지 않을 수도 있다.
  • 객체 생성 문법의 대규모 추가. 대표적으로 std::initializer_list{…}를 사용한 일반적 초기화 문법이 있다.
  • 함수·클래스 정의에 몇 가지 변화. 를 사용한 타입 선언이나, = default 등의 기본 생성자 정의, enum class 따위.
  • 문자열 리터럴이 쓸데 없이 복잡해짐.

이제 C++는 앞으로 10년동안 더 가장 배우기 어려운 언어의 위치를 고수할 수 있어!

1) 정확한 이름은 ISO/IEC 14882:200x여야 하지만 뒤에서 말하듯 이미 200x는 물건너갔다.
2) C++0x FAQ 참고.

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-05-30 18:25 | 외부 편집기