C++ Standard Library headers
C++ 표준 라이브러리의 인터페이스는 다음 헤더들의 모음으로 정의됩니다.
다목적 헤더 |
||
| 범용 유틸리티: 프로그램 제어 , 동적 메모리 할당 , 난수 생성 , 정렬 및 검색 | ||
|
(C++17)
|
알고리즘의 병렬 버전을 위한 미리 정의된 실행 정책 및 실행 제어 구성 요소 (since C++26) | |
언어 지원 라이브러리 |
||
| 부동 소수점 타입의 한계 | ||
| 정수형 타입의 한계 | ||
|
(C++20)
|
3방향 비교 연산자 지원 | |
|
(C++26)
|
계약 지원 라이브러리 | |
|
(C++20)
|
코루틴 지원 라이브러리 | |
| 실행 컨텍스트를 저장(및 이동)하는 매크로(및 함수) | ||
| 시그널 관리를 위한 함수 및 매크로 상수 | ||
| 가변 길이 인수 목록 처리 | ||
| 표준 매크로와 타입 정의 | ||
|
(C++11)
|
고정 너비 정수형 및 기타 타입의 한계 | |
| 예외 처리 유틸리티 | ||
|
(C++11)
|
std::initializer_list 클래스 템플릿 | |
| 산술 타입의 속성 조회 | ||
| 저수준 메모리 관리 유틸리티 | ||
|
(C++20)
|
소스 코드 위치를 획득하는 수단을 제공합니다 source code location | |
|
(C++23)
|
고정 너비 부동 소수점 타입 | |
|
(C++11)
|
std::type_index | |
| 런타임 타입 정보 유틸리티 | ||
|
(C++20)
|
라이브러리 구현 상태 검증을 위한 매크로를 제공합니다 | |
Concepts 라이브러리 |
||
|
(C++20)
|
기본 라이브러리 개념 | |
진단 라이브러리 |
||
| 인수를 0과 비교하는 조건부 컴파일 매크로 | ||
| 마지막 오류 번호를 포함하는 매크로 | ||
|
(C++26)
|
디버깅 라이브러리 | |
|
(C++23)
|
스택 트레이스 라이브러리 | |
| 표준 예외 유형 | ||
|
(C++11)
|
std::error_code 를 정의하며, 플랫폼에 종속적인 에러 코드입니다 | |
메모리 관리 라이브러리 |
||
| 고수준 메모리 관리 유틸리티 | ||
|
(C++17)
|
다형성 할당자 및 메모리 리소스 | |
|
(C++11)
|
중첩 할당자 클래스 | |
메타프로그래밍 라이브러리 |
||
|
(C++11)
|
컴파일 시점 유리수 연산 | |
|
(C++11)
|
컴파일 타임 형식 정보 유틸리티 | |
범용 유틸리티 라이브러리 |
||
|
(C++17)
|
std::any 클래스 | |
|
(C++20)
|
비트 조작 함수 | |
| std::bitset 클래스 템플릿 | ||
|
(C++23)
|
std::expected 클래스 템플릿 | |
| 함수 객체, 함수 호출, 바인드 연산 및 레퍼런스 래퍼 | ||
|
(C++17)
|
std::optional 클래스 템플릿 | |
|
(C++11)
|
std::tuple 클래스 템플릿 | |
| 다양한 유틸리티 컴포넌트 | ||
|
(C++17)
|
std::variant 클래스 템플릿 | |
컨테이너 라이브러리 |
||
|
(C++11)
|
std::array 컨테이너 | |
| std::deque 컨테이너 | ||
|
(C++23)
|
std::flat_map 및 std::flat_multimap 컨테이너 어댑터 | |
|
(C++23)
|
std::flat_set 및 std::flat_multiset 컨테이너 어댑터 | |
|
(C++11)
|
std::forward_list 컨테이너 | |
|
(C++26)
|
std::hive 컨테이너 | |
|
(C++26)
|
std::inplace_vector 컨테이너 | |
| std::list 컨테이너 | ||
| std::map 및 std::multimap 연관 컨테이너 | ||
|
(C++23)
|
std::mdspan 뷰 | |
| std::queue 및 std::priority_queue 컨테이너 어댑터 | ||
| std::set 및 std::multiset 연관 컨테이너 | ||
|
(C++20)
|
std::span 뷰 | |
| std::stack 컨테이너 어댑터 | ||
|
(C++11)
|
std::unordered_map 및 std::unordered_multimap 비정렬 연관 컨테이너 | |
|
(C++11)
|
std::unordered_set 및 std::unordered_multiset 비정렬 연관 컨테이너 | |
| std::vector 컨테이너 | ||
반복자 라이브러리 |
||
| 범위 반복자 | ||
Ranges 라이브러리 |
||
|
(C++23)
|
std::generator 클래스 템플릿 | |
|
(C++20)
|
범위 접근, 기본 요소, 요구 사항, 유틸리티 및 어댑터 | |
알고리즘 라이브러리 |
||
| 범위에서 동작하는 알고리즘 | ||
| 범위 내 값들에 대한 수치 연산 | ||
문자열 라이브러리 |
||
| 다양한 narrow character string handling functions | ||
| std::basic_string 클래스 템플릿 | ||
|
(C++17)
|
std::basic_string_view 클래스 템플릿 | |
텍스트 처리 라이브러리 |
||
| 좁은 문자 범주를 판별하는 함수들 | ||
|
(C++17)
|
std::to_chars 및 std::from_chars | |
| C 로케일 유틸리티 | ||
|
(C++11)
(C++17에서 사용 중단됨)
(C++26에서 제거됨)
|
유니코드 변환 기능 | |
|
(C++11)
|
C-스타일 유니코드 문자 변환 함수 | |
| 다양한 와이드 및 멀티바이트 문자열 처리 함수 | ||
| 와이드 문자 범주를 결정하는 함수 | ||
|
(C++20)
|
서식 지정 라이브러리 포함 std::format | |
| 지역화 유틸리티 | ||
|
(C++11)
|
정규 표현식 처리를 지원하는 클래스, 알고리즘 및 반복자 | |
|
(C++26)
|
텍스트 인코딩 식별 | |
수치 연산 라이브러리 |
||
|
(C++11)
|
부동 소수점 환경 접근 함수 | |
| 일반 수학 함수 | ||
| 복소수 타입 | ||
|
(C++26)
|
기본 선형 대수 알고리즘 (BLAS) | |
|
(C++20)
|
수학 상수 | |
|
(C++11)
|
난수 생성기 및 분포 | |
|
(C++26)
|
데이터 병렬 타입 및 이들 타입에 대한 연산 | |
| 값을 나타내고 조작하기 위한 배열 클래스 | ||
시간 라이브러리 |
||
|
(C++11)
|
C++ 시간 유틸리티 | |
| C 스타일 시간/날짜 유틸리티 | ||
입출력 라이브러리 |
||
|
(C++11)
|
서식 지정 매크로
,
intmax_t
및
uintmax_t
수학 연산 및 변환
|
|
| C 스타일 입력-출력 함수 | ||
|
(C++17)
|
std::filesystem::path 클래스 및 지원 함수들 | |
| std::basic_fstream , std::basic_ifstream , std::basic_ofstream 클래스 템플릿 및 typedef | ||
| 입력 및 출력 형식을 제어하는 헬퍼 함수 | ||
| std::ios_base 클래스, std::basic_ios 클래스 템플릿 및 typedefs | ||
| 입출력 라이브러리의 모든 클래스에 대한 전방 선언 | ||
| 여러 표준 스트림 객체 | ||
| std::basic_istream 클래스 템플릿 및 typedefs | ||
| std::basic_ostream , std::basic_iostream 클래스 템플릿 및 typedef | ||
|
(C++23)
|
서식화된 출력 라이브러리 포함 std::print | |
|
(C++23)
|
std::basic_spanstream , std::basic_ispanstream , std::basic_ospanstream 클래스 템플릿 및 typedef | |
| std::basic_stringstream , std::basic_istringstream , std::basic_ostringstream 클래스 템플릿 및 typedef | ||
| std::basic_streambuf 클래스 템플릿 | ||
|
(C++98에서 사용 중단됨)
(C++26에서 제거됨)
|
std::strstream , std::istrstream , std::ostrstream | |
|
(C++20)
|
std::basic_osyncstream , std::basic_syncbuf 및 typedef들 | |
동시성 지원 라이브러리 |
||
|
(C++11)
|
원자적 연산 라이브러리 | |
|
(C++20)
|
배리어 | |
|
(C++11)
|
스레드 대기 조건 | |
|
(C++11)
|
비동기 연산을 위한 기본 요소 | |
|
(C++26)
|
해저드 포인터 | |
|
(C++20)
|
래치 | |
|
(C++11)
|
상호 배제 기본 요소 | |
|
(C++26)
|
읽기-복사 업데이트(read-copy update) 메커니즘 | |
|
(C++20)
|
세마포어 | |
|
(C++14)
|
공유 상호 배제 프리미티브 | |
|
(C++20)
|
std::jthread 를 위한 중지 토큰 | |
|
(C++11)
|
std::thread 클래스 및 지원 함수들 | |
C 호환성 헤더
일부 C 표준 라이브러리 헤더 중
xxx
.h
형식에 대해, C++ 표준 라이브러리는 동일한 이름의 헤더와
c
xxx
형식의 다른 헤더를 모두 포함합니다(의미 있는 모든
c
xxx
헤더는 위에 나열되어 있습니다).
xxx
.h
형식 헤더의 사용 목적은 상호 운용성 전용입니다. C++ 소스 파일이 유효한 ISO C가 되기 위해 이러한 헤더 중 하나를 포함해야 할 수 있습니다. 동시에 유효한 ISO C가 될 의도가 없는 소스 파일은 C 헤더를 사용해서는 안 됩니다.
complex.h
를 제외하고, C++ 표준 라이브러리에 포함된 각
xxx
.h
헤더는 해당
c
xxx
헤더가
std
네임스페이스에 배치했을 각 이름을 전역 네임스페이스에 배치합니다.
이러한 헤더들은 동일한 이름들을
std
네임스페이스에서도 선언할 수 있으며, 이에 대응하는
c
xxx
헤더들은 동일한 이름들을 전역 네임스페이스에서도 선언할 수 있습니다:
<cstdlib>
를 포함하면 확실히
std::malloc
을 제공하며
::
malloc
도 제공할 수 있습니다.
<stdlib.h>
를 포함하면 확실히
::
malloc
을 제공하며
std::malloc
도 제공할 수 있습니다. 이는 C 표준 라이브러리의 일부가 아닌 함수와 함수 오버로드에도 적용됩니다.
참고:
xxx
.h
헤더는 C++98에서 deprecated되었고 C++23에서 undeprecated되었습니다. 이러한 헤더들은 순수 C++ 코드에는 권장되지 않지만, 향후 제거 대상은 아닙니다.
| <cassert> 와 동일하게 동작함 | |
| <cctype> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <cerrno> 와 동일하게 동작함 | |
|
(C++11)
|
<cfenv> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 |
| <cfloat> 와 동일하게 동작함 | |
|
(C++11)
|
<cinttypes> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 |
| <climits> 와 동일하게 동작함 | |
| <clocale> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
|
<cmath>
의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함,
단 수학 특수 함수 의 이름은 제외 |
|
| <csetjmp> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <csignal> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <cstdarg> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
|
<cstddef>
의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함,
단
std::byte
및 관련 함수
의 이름은 제외
|
|
|
(C++11)
|
<cstdint> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 |
| <cstdio> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <cstdlib> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <cstring> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <ctime> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
|
(C++11)
|
<cuchar> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 |
| <cwchar> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 | |
| <cwctype> 의 각 이름이 전역 네임스페이스에 배치된 것처럼 동작함 |
특수 C 호환성 헤더
헤더
<stdatomic.h>
,
<stdbit.h>
, 그리고
<stdckdint.h>
는 C 표준 라이브러리에서도 제공되는 이름들을 선언합니다. 헤더
<stdatomic.h>
는 또한 C에서
키워드
인
_Atomic
매크로를 정의합니다. 다른
<
xxx
.h>
헤더들과 달리, 이에 대응하는
<cstdatomic>
,
<cstdbit>
, 그리고
<cstdckdint>
는 제공되지 않습니다.
|
(C++23)
|
_Atomic
을 정의하고 C 표준 라이브러리의 해당 구성 요소를 제공합니다
|
|
(C++26)
|
C 표준 라이브러리의 해당 구성 요소를 제공합니다 |
|
(C++26)
|
C 표준 라이브러리의 해당 구성 요소를 제공합니다 |
빈 C 헤더
헤더 <complex.h> , <ccomplex> , <tgmath.h> , 그리고 <ctgmath> 는 C 표준 라이브러리의 어떤 내용도 포함하고 있지 않으며, 대신 C++ 표준 라이브러리의 다른 헤더들을 단순히 포함하기만 합니다.
|
(C++11)
(C++17에서 사용 중단됨)
(C++20에서 제거됨)
|
단순히 <complex> 헤더를 포함함 |
|
(C++11)
|
단순히 <complex> 헤더를 포함함 |
|
(C++11)
(C++17에서 사용 중단됨)
(C++20에서 제거됨)
|
단순히 <complex> 와 <cmath> 헤더를 포함함: C 헤더 <tgmath.h> 의 내용과 동등한 오버로드는 이미 해당 헤더들에 의해 제공됨 |
|
(C++11)
|
단순히 <complex> 와 <cmath> 헤더를 포함함 |
무의미한 C 헤더
헤더 <ciso646> , <cstdalign> , 그리고 <cstdbool> 는 C에서 제공하는 매크로들이 C++에서는 언어 키워드이기 때문에 C++에서는 의미가 없습니다.
|
(C++20에서 제거됨)
|
빈 헤더.
C의
iso646.h
에 있는 매크로들은
C++에서 키워드입니다
|
|
(C++11)
(C++17에서 사용 중단됨)
(C++20에서 제거됨)
|
호환성 매크로 상수
__alignas_is_defined
와
__alignof_is_defined
를 정의합니다
|
|
(C++11)
(C++17에서 사용 중단됨)
(C++20에서 제거됨)
|
호환성 매크로 상수
__bool_true_false_are_defined
를 정의합니다
|
| 아무 효과가 없음 | |
|
(C++11)
|
호환성 매크로 상수
__alignas_is_defined
와
__alignof_is_defined
를 정의합니다
|
|
(C++11)
|
호환성 매크로 상수
__bool_true_false_are_defined
를 정의합니다
|
지원되지 않는 C 헤더
C 헤더
<stdatomic.h>
,
(C++23 이전)
<stdnoreturn.h>
, 그리고
<threads.h>
는 C++에 포함되지 않으며
c
xxx
에 해당하는 것들이 없습니다.
실험적 라이브러리
C++ TR's/TS's 또한 여러 헤더 컬렉션들을 정의합니다.
참고 항목
|
C 문서
참조:
표준 라이브러리 헤더
|