Namespaces
Variants

C++ Standard Library headers

From cppreference.net
Standard library headers

C++ 표준 라이브러리의 인터페이스는 다음 헤더들의 모음으로 정의됩니다.

목차

다목적 헤더

범용 유틸리티: 프로그램 제어 , 동적 메모리 할당 , 난수 생성 , 정렬 및 검색
알고리즘의 병렬 버전을 위한 미리 정의된 실행 정책 및 실행 제어 구성 요소 (since C++26)

언어 지원 라이브러리

부동 소수점 타입의 한계
정수형 타입의 한계
(C++20)
3방향 비교 연산자 지원
계약 지원 라이브러리
코루틴 지원 라이브러리
실행 컨텍스트를 저장(및 이동)하는 매크로(및 함수)
시그널 관리를 위한 함수 및 매크로 상수
가변 길이 인수 목록 처리
표준 매크로와 타입 정의
(C++11)
고정 너비 정수형 기타 타입의 한계
예외 처리 유틸리티
std::initializer_list 클래스 템플릿
산술 타입의 속성 조회
저수준 메모리 관리 유틸리티
소스 코드 위치를 획득하는 수단을 제공합니다 source code location
(C++23)
고정 너비 부동 소수점 타입
std::type_index
런타임 타입 정보 유틸리티
(C++20)
라이브러리 구현 상태 검증을 위한 매크로를 제공합니다

Concepts 라이브러리

(C++20)
기본 라이브러리 개념

진단 라이브러리

인수를 0과 비교하는 조건부 컴파일 매크로
마지막 오류 번호를 포함하는 매크로
디버깅 라이브러리
스택 트레이스 라이브러리
표준 예외 유형
std::error_code 를 정의하며, 플랫폼에 종속적인 에러 코드입니다

메모리 관리 라이브러리

고수준 메모리 관리 유틸리티
다형성 할당자 및 메모리 리소스
중첩 할당자 클래스

메타프로그래밍 라이브러리

(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 컨테이너 어댑터
std::forward_list 컨테이너
(C++26)
std::hive 컨테이너
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 컨테이너 어댑터
std::unordered_map std::unordered_multimap 비정렬 연관 컨테이너
std::unordered_set std::unordered_multiset 비정렬 연관 컨테이너
std::vector 컨테이너

반복자 라이브러리

범위 반복자

Ranges 라이브러리

std::generator 클래스 템플릿
(C++20)
범위 접근, 기본 요소, 요구 사항, 유틸리티 및 어댑터

알고리즘 라이브러리

범위에서 동작하는 알고리즘
범위 내 값들에 대한 수치 연산

문자열 라이브러리

다양한 narrow character string handling functions
std::basic_string 클래스 템플릿
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++11)
부동 소수점 환경 접근 함수
일반 수학 함수
복소수 타입
(C++26)
기본 선형 대수 알고리즘 (BLAS)
(C++20)
수학 상수
(C++11)
난수 생성기 및 분포
(C++26)
데이터 병렬 타입 및 이들 타입에 대한 연산
값을 나타내고 조작하기 위한 배열 클래스

시간 라이브러리

(C++11)
C++ 시간 유틸리티
C 스타일 시간/날짜 유틸리티

입출력 라이브러리

서식 지정 매크로 , intmax_t uintmax_t 수학 연산 및 변환
C 스타일 입력-출력 함수
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
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
std::basic_osyncstream , std::basic_syncbuf 및 typedef들

동시성 지원 라이브러리

(C++11)
원자적 연산 라이브러리
(C++20)
배리어
스레드 대기 조건
(C++11)
비동기 연산을 위한 기본 요소
해저드 포인터
(C++20)
래치
(C++11)
상호 배제 기본 요소
(C++26)
읽기-복사 업데이트(read-copy update) 메커니즘
세마포어
공유 상호 배제 프리미티브
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> 와 동일하게 동작함
<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> 는 제공되지 않습니다.

_Atomic 을 정의하고 C 표준 라이브러리의 해당 구성 요소를 제공합니다
(C++26)
C 표준 라이브러리의 해당 구성 요소를 제공합니다
C 표준 라이브러리의 해당 구성 요소를 제공합니다

빈 C 헤더

헤더 <complex.h> , <ccomplex> , <tgmath.h> , 그리고 <ctgmath> 는 C 표준 라이브러리의 어떤 내용도 포함하고 있지 않으며, 대신 C++ 표준 라이브러리의 다른 헤더들을 단순히 포함하기만 합니다.

(C++11) (C++17에서 사용 중단됨) (C++20에서 제거됨)
단순히 <complex> 헤더를 포함함
단순히 <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 를 정의합니다
아무 효과가 없음
호환성 매크로 상수 __alignas_is_defined __alignof_is_defined 를 정의합니다
호환성 매크로 상수 __bool_true_false_are_defined 를 정의합니다

지원되지 않는 C 헤더

C 헤더 <stdatomic.h> , (C++23 이전) <stdnoreturn.h> , 그리고 <threads.h> 는 C++에 포함되지 않으며 c xxx 에 해당하는 것들이 없습니다.

실험적 라이브러리

C++ TR's/TS's 또한 여러 헤더 컬렉션들을 정의합니다.

참고 항목

C 문서 참조: 표준 라이브러리 헤더