C++ Standard Library headers
Интерфейс стандартной библиотеки C++ определяется следующей коллекцией заголовков.
Заголовки совместимости с C
Для некоторых заголовочных файлов стандартной библиотеки C вида
xxx
.h
, стандартная библиотека C++ включает как одноимённый заголовочный файл, так и другой заголовочный файл вида
c
xxx
(все значимые заголовочные файлы
c
xxx
перечислены выше). Предназначение заголовочных файлов вида
xxx
.h
— только обеспечение совместимости. Возможно, что исходные файлы C++ должны включать один из этих заголовочных файлов для соответствия стандарту ISO C. Исходные файлы, которые не предназначены для одновременной валидности в ISO C, не должны использовать какие-либо из C-заголовков.
За исключением
complex.h
, каждый заголовок
xxx
.h
, включённый в стандартную библиотеку C++, помещает в глобальное пространство имён каждое имя, которое соответствующий заголовок
c
xxx
поместил бы в пространство имён
std
.
Эти заголовки могут также объявлять те же имена в пространстве имён
std
, а соответствующие заголовки
c
xxx
могут также объявлять те же имена в глобальном пространстве имён: включение
<cstdlib>
гарантированно предоставляет
std::malloc
и может также предоставить
::
malloc
. Включение
<stdlib.h>
гарантированно предоставляет
::
malloc
и может также предоставить
std::malloc
. Это относится даже к функциям и перегрузкам функций, не входящим в стандартную библиотеку C.
Примечания:
xxx
.h
заголовки устарели в C++98 и восстановлены в C++23. Эти заголовки не рекомендуются для чистого 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>
также определяет макрос
_Atomic
, который является
ключевым словом
в C. В отличие от других заголовков
<
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)
|
Пустой заголовок.
Макросы, которые присутствуют в
iso646.h
в C
являются
ключевыми словами в 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
для
заголовков Стандартной библиотеки
|