이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.
cpp0x [2010-06-07 11:10] lifthrasiir 이 농담 BS도 하고 있었잖아! |
cpp0x [2011-10-11 09:13] (현재) lifthrasiir C++0x -> C++11 |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== C++0x ====== | ====== C++0x ====== | ||
- | + | #redirect [[Cpp11]] | |
- | [[Cpp]]의 새 버전으로 계획되고 있는 표준.((정확한 이름은 [[ISO]]/IEC 14882:200x여야 하지만 뒤에서 말하듯 이미 200x는 물건너갔다.)) 본래는 [[2009년]] 발표를 목표로 하고 수년간 표준화 작업을 거쳤지만 역시나 지연에 지연을 거듭하며 C++0x를 C++1x로 바꿔야 할 판이 되었다. ([[C1x]]를 참고) 이걸 두고 [[Bjarne Stroustrup]]이 0x가 그 0x가 아니라 [[16진수]] 리터럴이라고 농을 치고 있다.(([[http://www2.research.att.com/~bs/C++0xFAQ.html#when-standard|C++0x FAQ]] 참고.)) | + | |
- | + | ||
- | 가장 크게 보이는 변경점들: | + | |
- | + | ||
- | * ''auto'' 키워드와 ''decltype()'' 타입 생성자. (후자는 원래 ''typeof''였지만 벤더마다 의미가 제각각이라고 이름을 아예...) | + | |
- | * ''nullptr'' 키워드. | + | |
- | * 가변 인자 [[템플릿]]. 사실상 [[튜플]]을 언어의 일부로 넣는 것에 거의 대응됨. | + | |
- | * 템플릿 문법에서 닫는 ''> >''를 ''>>''로 써도 오류가 나지 않음. | + | |
- | * 익명 함수 문법 지원. [[클로저]]는 선택적으로 사용할 수도 있고 하지 않을 수도 있다. | + | |
- | * 객체 생성 문법의 대규모 추가. 대표적으로 ''std::initializer_list''와 ''{...}''를 사용한 일반적 초기화 문법이 있다. | + | |
- | * 함수·클래스 정의에 몇 가지 변화. ''->''를 사용한 타입 선언이나, ''= default'' 등의 기본 생성자 정의, ''enum class'' 따위. | + | |
- | * 문자열 리터럴이 쓸데 없이 복잡해짐. | + | |
- | + | ||
- | <del>이제 C++는 앞으로 10년동안 더 가장 배우기 어려운 언어의 위치를 고수할 수 있어!</del> | + |