Язык программирования C++
Интерфейс стандартной библиотеки C++ определяется следующей коллекцией заголовочных файлов.
| Несколько стандартных потоковых объектов | |
Шаблон класса std::basic_istream и псевдонимы типов |
|
Шаблоны классов std::basic_ostream, std::basic_iostream и псевдонимы типов |
|
|
(C++23) | Библиотека форматированного вывода, включая std::print |
|
(C++23) |
Шаблоны классов std::basic_spanstream, std::basic_ispanstream, std::basic_ospanstream и псевдонимы типов |
Шаблоны классов std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream и псевдонимы типов |
|
Шаблон класса std::basic_streambuf |
|
|
(устарел в C++98)(удалён в C++26) |
std::strstream, std::istrstream, std::ostrstream |
|
(C++20) |
std::basic_osyncstream, std::basic_syncbuf и псевдонимы типов |
Библиотека поддержки параллелизма |
|
|
(C++11) | Библиотека атомарных операций |
|
(C++20) | Барьерные объекты |
|
(C++11) | Условия ожидания потоков |
|
(C++11) | Примитивы для асинхронных вычислений |
|
(C++26) | Указатели-защитники |
|
(C++20) | Защёлки |
|
(C++11) | Примитивы взаимного исключения |
|
(C++26) | Механизмы чтения-копирования-обновления |
|
(C++20) | Семафоры |
|
(C++14) | Примитивы совместного взаимного исключения |
|
(C++20) | Токены остановки для std::jthread |
|
(C++11) |
Класс std::thread и вспомогательные функции |
Заголовки для совместимости с C
Для некоторых заголовков стандартной библиотеки C вида xxx.h стандартная библиотека C++ предоставляет как одноимённый заголовок, так и другой заголовок вида cxxx (все значимые заголовки cxxx перечислены выше). Заголовки вида xxx.h предназначены только для обеспечения совместимости. Исходным файлам C++ может потребоваться подключить один из этих заголовков, чтобы быть корректными файлами ISO C. Исходные файлы, которые не должны также быть корректными файлами ISO C, не должны использовать заголовки C.
За исключением complex.h, каждый заголовок xxx.h, включённый в стандартную библиотеку C++, помещает в глобальное пространство имён каждое имя, которое соответствующий заголовок cxxx поместил бы в пространство имён std.
Эти заголовки также могут объявлять те же имена в пространстве имён std, а соответствующие заголовки cxxx также могут объявлять те же имена в глобальном пространстве имён: подключение <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) | Определяет одну совместимую макроконстанту |
|
(C++11)(устарел в C++17)(удалён в C++20) | Определяет одну совместимую макроконстанту |
| Не оказывает эффекта | |
|
(C++11) | Определяет одну совместимую макроконстанту |
|
(C++11) | Определяет одну совместимую макроконстанту |
Неподдерживаемые заголовки C
Заголовки C <stdatomic.h>,(до C++23) <stdnoreturn.h> и <threads.h> не включены в C++ и не имеют эквивалентов cxxx.
Экспериментальные библиотеки
Технические отчёты и спецификации C++ также определяют несколько наборов заголовков.
См. также
| Документация по C для заголовков стандартной библиотеки C |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header