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

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

Материал из cppreference.com
< cpp
 
 
Заголовочные файлы стандартной библиотеки
Языковая поддержка
Концепты
<concepts> (C++20)
Диагностика
<system_error> (C++11)

Управление памятью
<memory_resource> (C++17)  
Метапрограммирование
<type_traits> (C++11)
<ratio> (C++11)
Общие утилиты
<utility>
<tuple> (C++11)
<optional> (C++17)
<variant> (C++17)
<any> (C++17)
<expected> (C++23)
<bitset>

<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)
<generator> (C++23)
Алгоритмы
Числа
<cfenv> (C++11)
<complex>
<numbers> (C++20)

Время
<chrono> (C++11)
Локализация
<codecvt> (C++11/17*)
Ввод/вывод
<filesystem> (C++17)
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98*)
Регулярные выражения
<regex> (C++11)
Поддержка конкуренции
<stop_token> (C++20)
<thread> (C++11)
<atomic> (C++11)
<stdatomic.h> (C++23)
<mutex> (C++11)
<shared_mutex> (C++14)
<condition_variable> (C++11)  
<semaphore> (C++20)
<latch> (C++20)
<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++17)
Класс std::any [править]
Шаблон класса std::bitset [править]
(C++11)
Утилиты времени C++ [править]
(C++20)
Поддержка оператора трёхстороннего сравнения [править]
Макрос (и функция), которая сохраняет (и переходит) в контекст выполнения [править]
Функции и макроконстанты для управления сигналами [править]
Обработка списков аргументов переменной длины [править]
Стандартные макросы и определения типов [править]
Утилиты общего назначения: программный контроль, распределение динамической памяти, случайные числа, сортировка и поиск [править]
Утилиты времени/даты в стиле C [править]
Шаблонный класс std::expected [править]
Объекты функции, Вызовы функций, Операции привязки и Оболочки ссылок [править]
Шаблонный класс std::initializer_list [править]
Шаблонный класс std::optional [править]
Предоставляет средства для получения расположения исходного кода [править]
(C++11)
Шаблонный класс std::tuple [править]
Информация о типе времени компиляции [править]
std::type_index [править]
Утилиты информации о типе времени выполнения [править]
Различные утилитарные компоненты [править]
(C++17)
Шаблонный класс std::variant [править]
(C++20)
Предоставляет зависящую от реализации информацию о библиотеке [править]
Динамическое управление памятью
Утилиты управления памятью высокого уровня [править]
Полиморфные аллокаторы и ресурсы памяти [править]
Утилиты управления памятью низкого уровня [править]
Вложенный класс аллокатора [править]
Числовые лимиты
Лимиты типов с плавающей запятой [править]
Макросы форматирования, intmax_t и uintmax_t математика и преобразования [править]
Лимиты целочисленных типов [править]
(C++11)
Целочисленные типы фиксированной ширины и лимиты других типов [править]
Единый способ запроса свойств арифметических типов [править]
Дополнительные расширенные типы с плавающей запятой [править]
Обработка ошибок
Макрос условной компиляции, сравнивающий свой аргумент с нулём [править]
Макрос, содержащий номер последней ошибки [править]
Утилиты обработки исключений [править]
Библиотека Трассировки Стека [править]
Стандартные объекты исключений [править]
Определяет std::error_code, код ошибки, зависящий от платформы [править]

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

Функции для определения категории узких символов [править]
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