Заголовочные файлы стандартной библиотеки C++
Интерфейс стандартной библиотеки C++ определяется следующим набором заголовочных файлов.
Библиотека концепций | |
(C++20) |
Концепты основной библиотеки |
Библиотека сопрограмм | |
(C++20) |
Библиотека поддержки сопрограмм |
Библиотека утилит | |
(C++17) |
Класс std::any |
| Шаблон класса std::bitset | |
(C++11) |
Утилиты времени C++ |
(C++20) |
Поддержка оператора трёхстороннего сравнения |
| Макрос (и функция), которая сохраняет (и переходит) в контекст выполнения | |
| Функции и макроконстанты для управления сигналами | |
| Обработка списков аргументов переменной длины | |
| Стандартные макросы и определения типов | |
| Утилиты общего назначения: программный контроль, распределение динамической памяти, случайные числа, сортировка и поиск | |
| Утилиты времени/даты в стиле C | |
(C++23) |
Шаблонный класс std::expected |
| Объекты функции, Вызовы функций, Операции привязки и Оболочки ссылок | |
(C++11) |
Шаблонный класс std::initializer_list |
(C++17) |
Шаблонный класс std::optional |
(C++20) |
Предоставляет средства для получения расположения исходного кода |
(C++11) |
Шаблонный класс std::tuple |
(C++11) |
Информация о типе времени компиляции |
(C++11) |
std::type_index |
| Утилиты информации о типе времени выполнения | |
| Различные утилитарные компоненты | |
(C++17) |
Шаблонный класс std::variant |
(C++20) |
Предоставляет зависящую от реализации информацию о библиотеке |
Динамическое управление памятью | |
| Утилиты управления памятью высокого уровня | |
(C++17) |
Полиморфные аллокаторы и ресурсы памяти |
| Утилиты управления памятью низкого уровня | |
(C++11) |
Вложенный класс аллокатора |
Числовые лимиты | |
| Лимиты типов с плавающей запятой | |
(C++11) |
Макросы форматирования, intmax_t и uintmax_t математика и преобразования
|
| Лимиты целочисленных типов | |
(C++11) |
Целочисленные типы фиксированной ширины и лимиты других типов |
| Единый способ запроса свойств арифметических типов | |
(C++23) |
Дополнительные расширенные типы с плавающей запятой |
Обработка ошибок | |
| Макрос условной компиляции, сравнивающий свой аргумент с нулём | |
| Макрос, содержащий номер последней ошибки | |
| Утилиты обработки исключений | |
(C++23) |
Библиотека Трассировки Стека |
| Стандартные объекты исключений | |
(C++11) |
Определяет std::error_code, код ошибки, зависящий от платформы |
Библиотека строк | |
| Функции для определения категории узких символов | |
(C++17) |
std::to_chars и std::from_chars |
| Различные функции обработки узкосимвольных строк | |
(C++11) |
Функции преобразования символов Юникода в стиле C |
| Различные функции обработки широких и многобайтовых строк | |
| Функции для определения категории широких символов | |
(C++20) |
Библиотека форматирования, включая std::format |
| Шаблонный класс std::basic_string | |
(C++17) |
Шаблон класса std::basic_string_view |
Библиотека контейнеров | |
(C++11) |
Контейнер std::array |
| Контейнер std::deque | |
(C++11) |
Контейнер std::forward_list |
| Контейнер std::list | |
| Ассоциативные контейнеры std::map и std::multimap | |
| Адаптеры контейнеров 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 | |
Библиотека итераторов | |
| Диапазонные итераторы | |
Библиотека диапазонов | |
(C++23) |
шаблон класса std::generator |
(C++20) |
Доступ в диапазоне, примитивы, требования, утилиты и адапторы |
Библиотека алгоритмов | |
| Алгоритмы, оперирующие диапазонами | |
(C++17) |
Предопределенные политики выполнения для параллельных версий алгоритмов |
Библиотека чисел | |
(C++20) |
Функции манипуляции битами |
(C++11) |
Функции доступа к среде с плавающей точкой |
| Общие математические функции | |
| Тип комплексного числа | |
(C++20) |
Математические константы |
| Числовые операции со значениями в диапазонах | |
(C++11) |
Генераторы случайных чисел и распределения |
(C++11) |
Рациональная арифметика времени компиляции |
| Класс для представления массивов значений и управления ими | |
Библиотека локализации | |
| Утилиты локализации C | |
(C++11)(устарело в C++17) |
Возможности преобразования Юникода |
| Утилиты локализации | |
(C++26) |
Идентификация кодировки текста |
Библиотека Ввода/Вывода | |
| Функции ввода-вывода в стиле C | |
| Шаблоны классов std::basic_fstream, std::basic_ifstream, std::basic_ofstream и несколько определений типов | |
| Вспомогательные функции для управления форматом ввода и вывода | |
| Класс std::ios_base, шаблон класса std::basic_ios и несколько определений типов | |
| Предварительные объявления всех классов в библиотеке ввода/вывода | |
| Несколько стандартных объектов потоков | |
| Шаблон класса std::basic_istream и несколько определений типов | |
| Шаблоны классов std::basic_ostream, std::basic_iostream и несколько определений типов | |
(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) |
std::strstream, std::istrstream, std::ostrstream |
(C++20) |
std::basic_osyncstream, std::basic_syncbuf и определения типов |
Библиотека файловой системы | |
(C++17) |
Класс std::path и вспомогательные функции |
Библиотека регулярных выражений | |
(C++11) |
Классы, алгоритмы и итераторы для поддержки обработки регулярных выражений |
Библиотека атомарных операций | |
(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 перечислены выше).
За исключением 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> объявляет имена, которые также предоставляются в стандартной библиотеке C, и определяет макрос _Atomic, который является ключевым словом в C. В отличие от других заголовков xxx.h, соответствующий <cstdatomic> не предоставляется.
(C++23)(устарело) |
Определяет _Atomic и предоставляет соответствующие компоненты в стандартной библиотеке C
|
Пустые заголовки C
Заголовки <complex.h>, <ccomplex>, <tgmath.h> и <ctgmath> не содержат содержимое из стандартной библиотеки C, а вместо этого просто включают другие заголовки из стандартной библиотеки 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>, <stdnoreturn.h> и <threads.h> не включены в C++ и не имеют cxxx эквивалентов.
Экспериментальные библиотеки
C++ TR/TS также определяют несколько коллекций заголовков.
Смотрите также
Документация C по Заголовки Стандартной Библиотеки C
|