Namespaces
Variants

C++11

From cppreference.net

C++11 은 C++의 두 번째 주요 버전이자 C++98 이후 가장 중요한 업데이트입니다. 기존 관행을 표준화하고 C++ 프로그래머가 사용 가능한 추상화를 개선하기 위해 많은 변화가 도입되었습니다.

C++11이 2011년 8월 12일 ISO에서 최종 승인되기 전까지는 2010년 이전에 출판될 것으로 예상되어 'C++0x'라는 이름이 사용되었습니다. C++03과 C++11 사이에는 8년이 걸려 지금까지 버전 간 가장 긴 간격이 되었습니다. 그 이후로 현재 C++는 3년마다 정기적으로 업데이트됩니다.

다음과 같은 기능들이 C++11에 통합되었습니다:

목차

핵심 언어 기능

라이브러리 기능

헤더

라이브러리 기능

**참고**: 주어진 지침에 따라 모든 C++ 표준 라이브러리 함수명(std:: 접두사 포함)과 HTML 태그/속성, 코드 관련 요소는 번역하지 않고 원본 그대로 유지했습니다.

결함 보고서

C++11에서 수정된 결함 보고서 (741 코어, 868 라이브러리)
  1. 1.0 1.1 1.2 이러한 결함 해결로 다음 멤버 함수들이 추가되었으나, libstdc++ 의 C++98 모드에서는 사용할 수 없습니다:

컴파일러 지원

C++11 핵심 언어 기능

**변역 내용:** - "Yes" → "예" (한국어로 "예"로 번역) - C++ 관련 용어인 `alignof`는 번역하지 않고 그대로 유지 - HTML 태그, 속성, 숫자 값, 버전 정보 등은 모두 원본 그대로 보존 - ` `와 같은 태그 내의 텍스트도 번역하지 않음
C++11 기능

문서

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++
C99 전처리기 N1653 4.3 지원 19.0 (2015)* (부분적)*
19.26*
지원 4.1 11.1 2015 7.0 8.4 지원 17.1.0 1.1.0 10.1 5.9 A.06.25 지원
static_assert ( 기능 테스트 매크로 ) * N1720 4.3 2.9 16.0* 4.1 11.0 2015 7.0 8.4 17.1.0 1.1.0 11.1 5.13 A.06.25 8.52
우측 각괄호 N1757 4.3 Yes 14.0* Yes 4.1 11.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 12.1 5.13
확장된 friend 선언 N1791 4.7 2.9 16.0* Yes 4.1 11.1 (부분적)
12.0
2015 7.0 8.4 Yes 17.1.0 1.1.0 11.1 5.13 A.06.25
long long N1811 14.0* 2015 7.0 8.4 17.1.0 1.1.0
auto N1984 4.4 16.0* 3.9 11.0 (부분적)*
12.0
2015 7.0 8.4 17.1.0 1.1.0 11.1 5.13 A.06.25
위임 생성자 ( FTM ) * N1986 4.7 3.0 18.0* 4.7 14.0 2015 7.0 8.4 17.1.0 1.1.0 11.1 5.13 A.06.28
extern template N1987 3.3 지원 12.0* 지원 3.9 9.0 2015 7.0 8.4 지원 17.1.0 1.1.0 11.1 5.13 A.06.25
constexpr ( FTM ) * N2235 4.6 3.1 19.0 (2015)* 지원 4.6 13.0 (부분적)
14.0
2015 7.0 8.4 지원 17.1.0 1.1.0 12.1 (부분적)
13.1
5.13 A.06.28
char16_t char32_t ( FTM ) * N2249 4.4 2.9 19.0 (2015)* 지원 4.4 12.1 (부분)*
14.0
2015 7.0 8.4 지원 17.1.0 1.1.0 13.1.1* 5.13 A.06.27 8.52
타입 트레이트 에 대한 컴파일러 지원. N2255* N2255
N2984
N3142
4.3 (부분적)*
4.8 (부분적)*
5
3.0 14.0*
(부분적)*
19.0 (2015)*
지원 4.0 10.0 2015 8.4 지원 17.1.0 1.1.0 13.1.3 5.13 6.16
템플릿 별칭 ( FTM ) * N2258 4.7 3.0 18.0* 지원 4.2 12.1 2015 7.0 8.4 지원 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
alignas N2341 4.8 3.0 19.0 (2015)* 지원 4.8 15.0 2015 7.0 8.6 지원 17.1.0 1.1.0 13.1.2* 5.13
alignof N2341 4.5 2.9 19.0 (2015)* 4.8 15.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13
디폴트 및 삭제된 함수 N2346 4.4 3.0 18.0* Yes 4.1 12.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1 5.13 A.06.25
강력한 타입의 enum N2347 4.4 2.9 16.0* (부분적)
17.0*
4.0 13.0 2015 7.0 8.4 17.1.0 1.1.0 12.1 5.13 A.06.25
원자적 연산 N2427 4.4 3.1 17.0* 13.0 2015 8.4 17.1.0 1.1.0 13.1.2* 5.14
nullptr N2431 4.6 2.9 16.0* 지원 4.2 12.1 2015 7.0 8.4 지원 17.1.0 1.1.0 13.1 5.13 A.06.27 8.52
명시적 변환 연산자 N2437 4.5 3.0 18.0* 4.4 13.0 2015 7.0 8.4 17.1.0 1.1.0 12.1 5.13 A.06.27
참조 한정자  ( FTM ) * N2439 4.8.1 2.9 19.0 (2015)* 4.7 14.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
유니코드 문자열 리터럴 ( FTM ) * N2442 4.4 3.0 19.0 (2015)* 4.7 11.0* 2015 7.0 8.4 17.1.0 1.1.0 10.1*
13.1.1*
5.7 A.06.28 8.52
원시 문자열 리터럴 ( FTM ) * N2442 4.5 Yes 18.0* Yes 4.7 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.1, except AIX xlC 13.1.3* 5.13 A.06.28 8.52
인라인 네임스페이스 N2535 4.4 2.9 19.0 (2015)* 4.5 14.0 2015 7.0 8.4 17.1.0 1.1.0 11.1 5.13 A.06.28
생성자 상속 ( FTM ) * N2540 4.8 3.3 19.0 (2015)* 4.8 15.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.1* 5.13
후행 함수 반환 타입 N2541 4.4 2.9 16.0* 4.1 12.0 2015 7.0 8.4 17.1.0 1.1.0 12.1 5.13 A.06.27
무제한 union s N2544 4.6 3.0 19.0 (2015)* 4.6 14.0* 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
가변 인자 템플릿 ( FTM ) * N2242
N2555
4.3 (부분적)*
4.4
2.9 18.0* 지원 4.3 (부분적)*
4.3
12.1 2015 7.0 8.4 지원 17.1.0 1.1.0 11.1 (부분적)* 5.13 A.06.27
표현식 SFINAE N2634 4.4 2.9 19.14* 지원 4.2 12.1 2015 7.0 8.4 지원 17.1.0 1.1.0
지역 및 무명 타입을 템플릿 매개변수로 사용 N2657 4.5 2.9 16.0* 4.2 12.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13 A.06.27
스레드 지역 저장소 N2659 4.4 (부분적)
4.8
3.3* 16.0* (부분적)
19.0 (2015)*
4.8 11.1 (부분적)
15.0*
2015 8.4 17.1.0 1.1.0 10.1 (부분적)*
13.1.2 (부분적)*
5.9 (부분적) 8.52 (부분적)
동시성을 고려한 동적 초기화 및 소멸 ( magic statics )  ( FTM ) * N2660 4.3 2.9 19.0 (2015)* Yes Yes 11.1* 2015 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
가비지 컬렉션 및 도달 가능성 기반 메모리 누수 감지 N2670
초기화자 리스트 ( FTM ) * N2672 4.4 3.1 18.0* 4.5 13.0 (부분적)
14.0
2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
비정적 데이터 멤버 초기화 ( FTM ) * N2756 4.7 3.0 18.0* 4.6 14.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
속성 , [[ noreturn ]] ( FTM ) * N2761 4.8 3.3 19.0 (2015)* 4.2 12.1 2015 7.0 8.4 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
[[ carries_dependency ]] N2556
N2643
3.3* 17.1.0*
전방 (불투명) enum 선언 N2764 4.6 3.1 17.0* 4.5 11.1 (부분적)
14.0
2015 7.0 8.4 17.1.0 1.1.0 12.1 5.13
사용자 정의 리터럴 ( FTM ) * N2765 4.7 3.1 19.0 (2015)* 4.8 15.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.2* 5.14
Rvalue references ( FTM ) * N2118
N2844
CWG1138
4.3 (부분적)*
4.5
2.9 16.0* (부분적)*
17.0*
4.5 11.1 (부분적)*
12.0 (부분적)*
14.0
2015 7.0* 8.4 17.1.0 1.1.0 12.1 5.13 A.06.25
람다 표현식 ( FTM ) * N2550
N2658
N2927
4.5 3.1 16.0* (부분적)*
17.0*
지원 4.1 12.0 2015 7.0 8.4 지원 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
범위 기반 for 루프 ( FTM ) * N2930
N3271
4.6 3.0 17.0* Yes 4.5 13.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
noexcept N3050 4.6 3.0 19.0 (2015)* 4.5 14.0 2015 7.0 8.4 17.1.0 1.1.0 13.1.1* 5.13 A.06.28
디폴트된 이동 특수 멤버 함수들 N3053 4.6 3.0 19.0 (2015)* Yes 4.5 14.0 2015 7.0 8.4 Yes 17.1.0 1.1.0 5.13 A.06.25
override final N2928
N3206
N3272
4.7 2.9 14.0* (부분적)
17.0*
4.8 12.0 (부분적)*
14.0
2015 7.0 8.4 17.1.0 1.1.0 13.1.1* 5.13
decltype ( FTM ) * N2343
N3276
4.3 (부분적)*
4.8.1
2.9 16.0* (부분적)*
17.0*
4.2 (부분적)*
4.8
11.0 (부분적)*
12.0
2015 7.0 8.4 17.1.0 1.1.0 11.1 (부분적)* 5.13 A.06.25 8.52 (부분적)*


C++11 기능


논문
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++

C++11 라이브러리 기능

**번역 결과:** - "Money, Time, and hexfloat I/O manipulators" → "통화, 시간 및 16진수 부동소수점 I/O 조정자" - 나머지 텍스트(HTML 태그, 속성, 코드, C++ 용어)는 원본 그대로 유지
C++11 기능

문서

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
정규 표현식 라이브러리 N1429 4.9 2.8 Yes Yes 17.1.0
Type traits . N1836* N1836
N2240
N2244
N2255
N2342
N2984
N3142
4.3 (부분적)*
4.8 (부분적)*
5
3.0 14.0*
(부분적)*
19.0 (2015)*
지원 17.1.0 5.13 지원
컨테이너의 멤버 함수 cbegin , cend , crbegin , 및 crend N1913
LWG1192
4.3 (부분적)*
4.5
예* 16.0* 예* 17.1.0
가비지 컬렉션 및 도달 가능성 기반 메모리 누수 탐지 ( 라이브러리 지원 ) N2670 6
(no-op)*
3.4
(no-op)*
19.0 (2015)*
(no-op)*

(no-op)*
17.1.0
Money, Time, and hexfloat I/O manipulators N2071
N2072
5 3.8 19.0 (2015)* Yes 17.1.0 5.15
COW(copy-on-write) 방식의 COW (copy-on-write) std::basic_string 사용 금지 N2668 5 Yes Yes Yes 17.1.0 Yes


C++11 기능


논문
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*

* - 별표로 표시된 셀 위에 마우스를 올리면 * 추가 팝업 노트를 볼 수 있습니다.
DR nn - "DR" 뒤의 숫자 nn 는 결함 보고서가 적용되는 대상 C++ 개정판을 나타냅니다(예: DR20 → C++20).

외부 링크

1. C++11 - 위키백과
2. 실제 동작하는 C++11 예제