Namespaces
Variants

C++ Standard Library headers

From cppreference.net
Standard library headers

Интерфейс стандартной библиотеки C++ определяется следующей коллекцией заголовков.

**Примечание:** В данном случае весь текст на странице уже состоит из HTML-тегов, атрибутов и C++ специфических терминов (` `, `std::type_index`), которые не подлежат переводу согласно указанным правилам. Единственный элемент, который мог бы быть переведен - это "(C++11)", но это версионный маркер, который также является техническим обозначением и обычно сохраняется в оригинале в технической документации.

Содержание

Многоцелевые заголовки

Утилиты общего назначения: управление программой , динамическое выделение памяти , случайные числа , сортировка и поиск
Предопределенные политики выполнения для параллельных версий алгоритмов и компоненты управления выполнением (since C++26)

Библиотека поддержки языка

Границы типов с плавающей точкой
Границы целочисленных типов
(C++20)
Поддержка оператора трёхстороннего сравнения
Библиотека поддержки контрактов
Библиотека поддержки корутин
Макрос (и функция), который сохраняет (и переходит) в контекст выполнения
Функции и макроконстанты для управления сигналами
Обработка списков аргументов переменной длины
Стандартные макросы и определения типов
(C++11)
Целочисленные типы фиксированной ширины и ограничения других типов
Утилиты обработки исключений
std::initializer_list шаблон класса
Запрос свойств арифметических типов
Утилиты низкоуровневого управления памятью
Предоставляет средства для получения местоположения в исходном коде
(C++23)
Типы с фиксированной шириной для чисел с плавающей запятой
std::type_index
Утилиты информации о типах во время выполнения
(C++20)
Предоставляет макросы для проверки статуса реализации библиотеки

Библиотека концепций

(C++20)
Фундаментальные концепции библиотеки

Библиотека диагностики

Условно компилируемый макрос, сравнивающий свой аргумент с нулём
Макрос, содержащий номер последней ошибки
Библиотека отладки
Библиотека Stacktrace
Стандартные типы исключений
Определяет 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 контейнер

Библиотека итераторов

Итераторы диапазонов

Библиотека диапазонов

std::generator шаблон класса
(C++20)
Доступ к диапазонам, примитивы, требования, утилиты и адаптеры

Библиотека алгоритмов

Алгоритмы, работающие с диапазонами
Числовые операции над значениями в диапазонах

Библиотека строк

Различные функции обработки строк узких символов
std::basic_string шаблон класса
std::basic_string_view шаблон класса

Библиотека обработки текста

Функции для определения категории узких символов
(C++17)
std::to_chars и std::from_chars
Утилиты локализации C
(C++11) (deprecated in C++17) (removed in C++26)
Средства преобразования Unicode
(C++11)
Функции преобразования Unicode символов в стиле 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 шаблоны классов и определения типов
Вспомогательные функции для управления форматом ввода и вывода
std::ios_base класс, std::basic_ios шаблон класса и определения типов
Форвардные объявления всех классов библиотеки ввода/вывода
Несколько стандартных потоковых объектов
std::basic_istream шаблон класса и определения типов
std::basic_ostream , std::basic_iostream шаблоны классов и определения типов
(C++23)
Библиотека форматированного вывода, включающая std::print
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
std::basic_osyncstream , std::basic_syncbuf и определения типов

Библиотека поддержки многопоточности

(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 , каждый заголовок 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>
Ведет себя так, как если бы каждое имя из <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> не предоставляются.

Определяет _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)
Пустой заголовок. Макросы, которые присутствуют в 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
Не имеет эффекта
Определяет макросы совместимости __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 для заголовков Стандартной библиотеки