C++ 11 특징
2011년 8월 12일에 ISO c++표준 위원회의 만장일치로 통과, 그동안 C++0x등으로 불렸으나 표준으로 인정받은 해에 맞춰 기술하는 원칙에 따라 C++11이라는 정식 명칭으로 탄생
C++11의 특징
- 안정성 및 C++98과의 호환성 유지
- 핵심 언어의 확자오다는 표준 라이브러리를 이용한 새로운 기능 추가
- 프로그래밍 기술을 발전시킬 변화 선호
- 특정 애플리케이션에서만 유용한 새로운 기술 보다는 시스템 라이브러리 디자인에 유용하게 C++를 개선
- 이전의 안전하지 않은 기술에 대해 좀더 안전한 대안을 제공
- 성능 향상과 하드웨어 직접 조작 능력 강화
- 실 세계의 문제를 해결할 수 있는 해법 제시
- '부담 최소화'의 원칙 (어떤 유틸리티가 필요로하는 추가적인 자원은 그 유틸리티를 사용할 때만 필요해야 함)
- 전문 프로그래머가 필요로 하는 어떤 유틸리티도 제거하지 않고도, 쉽게 가르치거나 배울 수 있어야 함.
문법의 편의성이 크게 향상
- 템플릿에서 가변 인자
- 새로운 문자열 리터럴
- 사용자 정의 리터럴
- 멀티태스킹 메모리 모델
- TLS (Thread-Local-Storage)
- 특수 멤버 함수의 기본값 사용 및 삭제에 대한 명시적 표시
- long long int 타입
- 정적 assertion
- 멤버에 대한 sizeof 허용
C++ 컴파일러
- GCC
현재 C++를 가장 완벽하게 지원하는 컴파일러. - MSVC (MS Visual C++)
C++11/14/17 Feature In VS 2015 Preview - LLVM과 CLang
LLVM은 원래 다양한 프로그래밍 언어의 정적/동적 컴파일러 집합과 도구를 마들어내는 오픈소스 프로젝트로 시작 Clang은 LLVM 컴파일러 컴포넌트를 기반으로 해 C, C++, Objective-C, Objective-C++ 프로그래밍 언어를 지원하기 위한 컴파일러 프론트엔드, GCC 프론트 엔드보다 빠르고, 메모리 소모가 적으며 에러메시지가 명확하다는 특징이 있음. 애플이 주도하며 구글에서도 C++를 사용할때 LLVM에 기반을 둔 Clang을 사용하길 권장, Xcode에 포함.