Заголовочные файлы стандартной библиотеки C++
Интерфейс стандартной библиотеки C++ определяется следующим набором заголовочных файлов.
| Условно компилируемая макрокоманда, которая сравнивает свой аргумент с нулём | |
| Макрокоманда, содержащая последний номер ошибки | |
| Средства обработки исключений | |
|
(C++23) | Библиотека Stacktrace |
| Стандартные объекты исключений | |
|
(C++11) | Определяет std::error_code, платформенно-зависимый код ошибки |
Библиотека строк |
|
| Функции для определения категории узких символов | |
|
(C++17) | std::to_chars и std::from_chars |
| Различные функции обработки строк узких символов | |
|
(C++11) | Функции преобразования Unicode символов в стиле C многобайтовые функции |
| Различные широкие и многобайтовые функции обработки строк | |
| Функции для определения категории широких символов | |
|
(C++20) | Библиотека форматирования, включая std::format |
Шаблон класса std::basic_string |
|
|
(C++17) | Шаблон класса std::basic_string_view |
Библиотека контейнеров |
|
|
(C++11) | Контейнер std::array |
Контейнер std::deque |
|
|
(C++23) | Контейнеры std::flat_map и std::flat_multimap |
|
(C++23) | Контейнеры std::flat_set и std::flat_multiset |
|
(C++11) | Контейнер std::forward_list |
Контейнер 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 |
|
|
(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++26) | Основные алгоритмы линейной алгебры |
|
(C++20) | Математические константы |
| Числовые операции над значениями в диапазонах | |
|
(C++11) | Генераторы и распределения случайных чисел |
|
(C++11) | Рациональная арифметика во время компиляции |
| Класс для представления и обработки массивов значений | |
Библиотека локализации |
|
| Средства локализации C | |
|
(C++11)(устарело в C++17)(удалено в C++26) | Средства преобразования Юникода |
| Средства локализации | |
|
(C++26) | Идентификация кодировок текста |
Библиотека ввода/вывода |
|
| Функции ввода-вывода в стиле C | |
| Шаблоны классов и несколько определений типов | |
| Вспомогательные функции для управления форматом ввода и вывода | |
| Класс и шаблон класса, а также несколько определений типов | |
| Объявления-заглушки всех классов в библиотеке ввода/вывода | |
| Несколько стандартных объектов потоков | |
| Шаблон класса и несколько определений типов | |
| Шаблоны классов и несколько определений типов | |
|
(C++23) | Библиотека форматированного вывода, включая std::print |
|
(C++23) | Шаблоны классов и определения типов |
| Шаблоны классов и несколько определений типов | |
| Шаблон класса | |
|
(устарело в C++98) | |
|
(C++20) | и определения типов |
Библиотека файловой системы |
|
|
(C++17) | Класс и поддерживающие функции |
Библиотека регулярных выражений |
|
|
(C++11) | Классы, алгоритмы и итераторы для поддержки обработки регулярных выражений |
Библиотека атомных операций |
|
|
(C++11) | Библиотека атомных операций |
Библиотека поддержки потоков |
|
|
(C++20) | Барьеры |
|
(C++11) | Условия ожидания потоков |
|
(C++11) | Примитивы для асинхронных вычислений |
|
(C++26) | Указатели опасностей |
|
(C++20) | Защелки |
|
(C++11) | Примитивы взаимного исключения |
|
(C++26) | Механизмы read-copy update |
|
(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> объявляет имена, которые также предоставляются в стандартной библиотеке C, и определяет макрос _Atomic, который является ключевым словом в C. В отличие от других xxx.h заголовков, соответствующий <cstdatomic> не предоставляется.
|
(C++23) | Определяет _Atomic и предоставляет соответствующие компоненты в стандартной библиотеке 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++ TR/TS также определяют несколько наборов заголовков.
См. также
| Документация по C для заголовков стандартной библиотеки C |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/headers