Пространства имён
Варианты
Действия

Заголовочные файлы стандартной библиотеки C++

Материал из cppreference.com
< cpp
 
 
Заголовочные файлы стандартной библиотеки
Языковая поддержка
Концепты
<concepts>(C++20)
Диагностика
Управление памятью
Метапрограммирование
<ratio>(C++11)
Общие утилиты
<charconv>(C++17)
<format>(C++20)
<bit>(C++20)

Строки
<cuchar>(C++11)

Контейнеры
<flat_set>(C++23)
<span>(C++20)
<mdspan>(C++23)

Итераторы
<iterator>
Диапазоны
<ranges>(C++20)
Алгоритмы
Числа
<numbers>(C++20)

Время
<chrono>(C++11)
Локализация
<codecvt>(C++11/17*)
Ввод/вывод
Регулярные выражения
<regex>(C++11)
Поддержка конкуренции
<stop_token>(C++20)
<thread>(C++11)
<atomic>(C++11)
<barrier>(C++20)
<future>(C++11)

Совместимость с C
<cstdbool>(C++11/17/20*)  
<ccomplex>(C++11/17/20*)
<ctgmath>(C++11/17/20*)

<cstdalign>(C++11/17/20*)

<ciso646>(до C++20)

 

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

Содержание

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

(C++20)
Концепты основной библиотеки[править]

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

Библиотека поддержки сопрограмм[править]

Библиотека утилит

(C++17)
Класс std::any[править]
Шаблон класса std::bitset[править]
(C++11)
Утилиты времени C++[править]
(C++20)
Поддержка оператора трёхстороннего сравнения[править]
Макрос (и функция), которая сохраняет (и переходит) в контекст выполнения[править]
Функции и макроконстанты для управления сигналами[править]
Обработка списков аргументов переменной длины[править]
Стандартные макросы и определения типов[править]
Утилиты общего назначения: программный контроль, распределение динамической памяти, случайные числа, сортировка и поиск[править]
Утилиты времени/даты в стиле C[править]
(C++23)
Шаблонный класс std::expected[править]
Объекты функции, Вызовы функций, Операции привязки и Оболочки ссылок[править]
Шаблонный класс std::initializer_list[править]
(C++17)
Шаблонный класс std::optional[править]
Предоставляет средства для получения расположения исходного кода[править]
(C++11)
Шаблонный класс std::tuple[править]
Информация о типе времени компиляции[править]
std::type_index[править]
Утилиты информации о типе времени выполнения[править]
Различные утилитарные компоненты[править]
(C++17)
Шаблонный класс std::variant[править]
(C++20)
Предоставляет зависящую от реализации информацию о библиотеке [править]
Динамическое управление памятью
Утилиты управления памятью высокого уровня[править]
Полиморфные аллокаторы и ресурсы памяти[править]
Утилиты управления памятью низкого уровня[править]
Вложенный класс аллокатора[править]
Числовые лимиты
Лимиты типов с плавающей запятой[править]
Макросы форматирования, intmax_t и uintmax_t математика и преобразования [править]
Лимиты целочисленных типов[править]
(C++11)
Целочисленные типы фиксированной ширины и лимиты других типов[править]
Единый способ запроса свойств арифметических типов[править]
(C++23)
Дополнительные расширенные типы с плавающей запятой [править]
Обработка ошибок
Макрос условной компиляции, сравнивающий свой аргумент с нулём[править]
Макрос, содержащий номер последней ошибки[править]
Утилиты обработки исключений[править]
Библиотека Трассировки Стека[править]
Стандартные объекты исключений[править]
Определяет std::error_code, код ошибки, зависящий от платформы [править]

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

Функции для определения категории узких символов[править]
(C++17)
std::to_chars и std::from_chars[править]
Различные функции обработки узкосимвольных строк[править]
(C++11)
Функции преобразования символов Юникода в стиле C [править]
Различные функции обработки широких и многобайтовых строк [править]
Функции для определения категории широких символов[править]
(C++20)
Библиотека форматирования, включая std::format[править]
Шаблонный класс std::basic_string[править]
Шаблон класса std::basic_string_view[править]

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

(C++11)
Контейнер std::array[править]
Контейнер std::deque[править]
Контейнер std::forward_list[править]
Контейнер std::list[править]
Ассоциативные контейнеры std::map и std::multimap[править]
Адаптеры контейнеров 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)
Доступ в диапазоне, примитивы, требования, утилиты и адапторы[править]

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

Алгоритмы, оперирующие диапазонами[править]
Предопределенные политики выполнения для параллельных версий алгоритмов [править]

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

(C++20)
Функции манипуляции битами[править]
(C++11)
Функции доступа к среде с плавающей точкой[править]
Общие математические функции[править]
Тип комплексного числа[править]
(C++20)
Математические константы[править]
Числовые операции со значениями в диапазонах[править]
(C++11)
Генераторы случайных чисел и распределения[править]
(C++11)
Рациональная арифметика времени компиляции[править]
Класс для представления массивов значений и управления ими[править]

Библиотека локализации

Утилиты локализации C[править]
(C++11)(устарело в C++17)
Возможности преобразования Юникода[править]
Утилиты локализации[править]
Идентификация кодировки текста [править]

Библиотека Ввода/Вывода

Функции ввода-вывода в стиле 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 и несколько определений типов [править]
Шаблоны классов и определения типов 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[править]
std::basic_osyncstream, std::basic_syncbuf и определения типов [править]

Библиотека файловой системы

Класс std::path и вспомогательные функции[править]

Библиотека регулярных выражений

(C++11)
Классы, алгоритмы и итераторы для поддержки обработки регулярных выражений[править]

Библиотека атомарных операций

(C++11)
Библиотека атомарных операций[править]

Библиотека поддержки потоков

(C++20)
Барьеры[править]
Условия ожидания потока[править]
(C++11)
Примитивы для асинхронных вычислений[править]
Указатели опасности [править]
(C++20)
Защёлки[править]
(C++11)
Примитивы взаимного исключения[править]
(C++26)
Механизмы обновления чтение-копирования [править]
Семафоры[править]
Общие примитивы взаимного исключения[править]
Стоповые токены для 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
close