====== C++11 ====== 정식 명칭 [[ISO IEC]] 14882:2001. [[Cpp]]의 최신 버전으로, 본래는 2000년대에 발표할 것을 염두에 두고 C++0x라고 불렀으나 표준화 과정이 지연에 지연을 거듭하며 C++0x를 C++1x로 바꿔야 할 판이 되었다. 이걸 두고 [[Bjarne Stroustrup]]이 0x가 그 0x가 아니라 [[16진수]] 리터럴이라고 농을 친 적이 있다. (([[http://www2.research.att.com/~bs/C++0xFAQ.html#when-standard|C++0x FAQ]] 참고.)) 최종적으로는 [[2011년 10월]] 국제 표준으로 [[http://herbsutter.com/2011/10/10/iso-c11-published/|출판]]되었다. 가장 크게 보이는 변경점들: * ''auto'' 키워드와 ''decltype()'' 타입 생성자. (후자는 원래 ''typeof''였지만 벤더마다 의미가 제각각이라고 이름을 아예...) * ''nullptr'' 키워드. * 가변 인자 [[템플릿]]. 사실상 [[튜플]]을 언어의 일부로 넣는 것에 거의 대응됨. * 템플릿 문법에서 닫는 ''> >''를 ''>>''로 써도 오류가 나지 않음. * 익명 함수 문법 지원. [[클로저]]는 선택적으로 사용할 수도 있고 하지 않을 수도 있다. * 객체 생성 문법의 대규모 추가. 대표적으로 ''std::initializer_list''와 ''{...}''를 사용한 일반적 초기화 문법이 있다. * 함수·클래스 정의에 몇 가지 변화. ''->''를 사용한 타입 선언이나, ''= default'' 등의 기본 생성자 정의, ''enum class'' 따위. * 문자열 리터럴이 쓸데 없이 복잡해짐. 이제 C++는 앞으로 10년동안 더 가장 배우기 어려운 언어의 위치를 고수할 수 있어! 다행히도 [[Cpp export]]는 이번 표준에서 아예 사라진다. {{tag>프로그래밍언어}}