C++11: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
잔글 정리. using AWB |
잔글 정리. using AWB |
||
3번째 줄:
'''C++ 11'''('''C++0x'''라고도 알려짐)은 <ref>{{웹 인용 |url=http://video.google.com/videoplay?docid=5262479012306588324 |제목={title} |확인날짜=2012년 03월 02일 |보존url=https://web.archive.org/web/20111017132740/http://video.google.com/videoplay?docid=5262479012306588324 |보존날짜=2011년 10월 17일 |깨진링크=예 }}</ref> [[국제 표준 기구|ISO]]가 2011년 8월 12일에 승인한 [[C++]] [[프로그래밍 언어]]의 최신판이다. <ref>{{웹 인용|title=We have an international standard: C++0x is unanimously approved|url=http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/| accessdate=12 August 2011}}</ref> 2000년대의 한 시점에 공개될 것으로 예상해 C++0x으로 불려 왔으나, 2011년에야 국제표준으로 확정되면서 최종적으로 C++11로 이름이 확정되었다.
C++11은 [[핵심 언어]]에 여러가지를 추가하고 [[C++ 표준 라이브러리]]를 확장하고, [[C++ 기술 보고서 1]](TR1)의 [[라이브러리]]의 수학적 특수 함수의 라이브러리 예외를 통합했다.<ref>{{웹 인용|title=Bjarne Stroustrup: A C++0x overview|url=http://www.research.ibm.com/arl/seminar/media/stroustrup.pdf| accessdate=30 June 2011}}</ref> C++11은 '''''ISO/IEC 14882:2011'''''라고 출판되었다.
== 이전 표준에서의 변화 ==
C++ 의 수정은 핵심 언어와 표준 라이브러리 모두를 포함한다.
줄 16 ⟶ 17:
* 전문 프로그래머가 필요로 하는 어떤 유틸리티도 제거하지 않고도, 쉽게 가르치거나 배울 수 있어야 함
프로그래머 중 초심자가 대다수이며, 많은 초심자들은 C++에 대한 지식을 늘리기 보다는 그들에게 특화된 언어 측면에만 매진하는 경향이 있기 때문에 그들에 대해 주의를 기울이는 것이 중요하다.
== C++ 언어의 문법 확장 ==
C++ 위원회의 주된 관심은 언어 문법을 개발하는 것이다. C++0x의 프리젠테이션 일정은 표준안에서 이 부분의 진행에 영향을 받는다.
언어의 문법적 범위는 멀티태스킹 지원, 제네릭 프로그래밍 지원, 초기화 방법 통합, 성능 향상 등으로 매우 증가하였다.
이 문서의 목적에 맞게, 문법적 기능과 변화는 "런타임 성능 향상", "컴파일 성능 향상", "편의성 향상", "새로운 기능"등의 4부분으로 그룹화하였다. 일부 기능은 여러 부분에서 언급될 수 있지만, 주된 기능에 대해서 한번씩만 설명할 것이다.
=== 핵심 언어 - 런타임 성능 향상 ===
아래 나열된 기능은 주로 메모리나 계산 속도에 대한 성능 향상을 제공한다.
줄 25 ⟶ 28:
* 일반화된 상수식
* POD에 대한 재정의
=== 문법 기능의 컴파일 성능 향상 ===
* extern 템플릿
=== 문법 기능의 편의성 향상 ===
* 초기화 리스트
줄 42 ⟶ 47:
* 템플릿 별명
* union에 대한 제한 해제
=== 문법의 새로운 기능 ===
* [[템플릿]]에서의 가변 인자
줄 52 ⟶ 58:
* 정적 [[assertion]]
* 멤버에 대한 [[sizeof]] 허용
== C++ 표준 라이브러리의 변화 ==
새로운 기능의 상당수는 C++0x 표준 라이브러리에서 소개된다. 이들중 상당수는 현재의 표준안에서도 구현될 수 있다. 하지만 일부는 C++0x의 새로운 문법에 의존한다.
줄 68 ⟶ 75:
* [[메타 프로그래밍]]을 위한 type traits
* 함수객체의 리턴형에 대한 방법
== 적용 ==
C++11은 GCC 4.3부터 C++0x라는 이름으로, <ref name=gnupr>http://gcc.gnu.org/projects/cxx0x.html</ref> 그리고 4.7부터는 C++11로서<ref>http://gcc.gnu.org/gcc-4.7/cxx0x_status.html</ref> 시험적용되고 있고, Visual Studio 10<ref>http://blogs.msdn.com/b/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx</ref>부터 Visual Studio 12<ref>http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx</ref>까지 부분적으로 적용되고 있다.
GCC(>=4.3)으로 커맨드 라인에 -std=c++0x 을 추가함으로써 해당 컴파일러에서 지원하는 C++0x 표준으로 컴파일 할 수 있다.<ref name=gnupr />
GCC 4.7 이상의 버전에서는 -std=c++
== 인용 ==
<references/>
== 외부 링크 ==
* [http://occamsrazr.net/tt/tag/C++0x 류광의 번역 이야기 - C++0x 글 모음]
|