The Wayback Machine - https://web.archive.org/web/20220418073654/https://ru.cppreference.com/w/cpp/utility
Пространства имён
Варианты
Действия

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

Материал из cppreference.com
< cpp
 
C++
Поддержка компилятором
Автономные и размещённые реализации
Язык
Заголовки стандартной библиотеки
Требования к именованию
Макросы тестирования функциональности (C++20)
Поддержка языка
Библиотека концептов (C++20)
Библиотека метапрограммирования (C++11)
Библиотека диагностики
Библиотека общих утилит
Библиотека строк
Библиотека контейнеров
Библиотека итераторов
Библиотека диапазонов (C++20)
Библиотека алгоритмов
Библиотека численных данных
Библиотека ввода/вывода
Библиотека локализаций
Регулярные выражения (C++11)
Атомарные операции (C++11)
Библиотека поддержки конкуренции (C++11)
Библиотека файловой системы (C++17)
Технические спецификации
Указатель символов
Внешние библиотеки
 
Библиотека утилит
Поддержка языка
Поддержка типа (базовые типы, RTTI, свойства типов)    
Макросы тестирования функциональности библиотеки (C++20)
Управление динамической памятью
Программные утилиты
Обработка ошибок
Поддержка сопрограмм (C++20)
Вариативные функции
(C++17)
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Объекты функции
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)  
(C++20)
Операции обмена и типа
(C++14)
(C++11)

(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)
(C++23)

Элементарные преобразования строк
(C++17)
(C++17)
 

C++ включает в себя множество полезных библиотек, которые обеспечивают различную функциональность, работая на разных уровнях абстракции, включая, например управление битами и частичное применение функции. Эти библиотеки можно разделить на две группы:

  • библиотеки для поддержки языка;
  • библиотеки общего назначения.

Содержание

[править] Поддержка языка

Библиотеки поддержки языка предоставляют классы и функции, тесно связанные с возможностями языка и служащие для поддержки общих языковых идиом.

[править] Подержка типов

Базовые типы (например, std::size_t, std::nullptr_t), RTTI (например, std::type_info), свойства типа (например, std::is_integral, std::rank)

[править] Контекст оценки константы

Определены в заголовочном файле <type_traits>
определяет, происходит ли вызов в контексте вычисления константы
(функция) [править]

[править] Свойства реализации

Заголовок <version> предоставляет зависящую от реализации информацию о стандартной библиотеке C++ (такую как номер версии и дата выпуска). Он также объявляет макросы тестирования возможностей библиотеки.

(начиная с C++20)

[править] Программные утилиты

  • Прерывание (например, std::abort, std::atexit)
  • Окружение (например, std::system)
  • Сигналы (например, std::raise)

[править] Динамическое управление памятью

  • Умные указатели (например, std::shared_ptr).
  • Распределители (например, std::allocator или std::pmr::memory_resource).
  • Управление памятью в стиле C (например, std::malloc).

[править] Доступ к объекту

Определены в заголовочном файле <new>
(C++17)
барьер оптимизации указателя
(шаблон функции) [править]

[править] Обработка ошибок

  • Исключения (например, std::exception, std::terminate).
  • Утверждения (например, assert).
  • Утверждения момента компиляции (static_assert).

[править] Сбор информации об исходном коде

Определены в заголовочном файле <source_location>
класс, предоставляющий информацию об исходном коде, такую как имена файлов, номера строк и имена функций
(класс) [править]

[править] Списки инициализации

Определены в заголовочном файле <initializer_list>
создаёт временный массив в списке инициализации, а затем ссылается на него
(шаблон класса) [править]

[править] Трёхстороннее сравнение

Определены в заголовочном файле <compare>
указывает, что оператор <=> даёт согласованный результат для данных типов
(концепт) [править]
тип результата трёхстороннего сравнения, который поддерживает все 6 операторов, не подлежит замене и допускает несравнимые значения
(класс) [править]
тип результата трёхстороннего сравнения, который поддерживает все 6 операторов и не подлежит замене
(класс) [править]
тип результата трёхстороннего сравнения, который поддерживает все 6 операторов и может быть заменён
(класс) [править]
именованные функции сравнения
(функция) [править]
реализация объекта функции x <=> y
(класс) [править]
получает тип результата оператора трёхстороннего сравнения <=> для заданных типов
(шаблон класса) [править]
самая сильная категория сравнения, в которую можно преобразовать все указанные типы
(шаблон класса) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::strong_ordering
(объект точки настройки) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::weak_ordering
(объект точки настройки) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::partial_ordering
(объект точки настройки) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::strong_ordering, даже если operator<=> недоступен
(объект точки настройки) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::weak_ordering, даже если operator<=> недоступен
(объект точки настройки) [править]
выполняет трёхстороннее сравнение и возвращает результат типа std::partial_ordering, даже если operator<=> недоступен
(объект точки настройки) [править]

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

Типы для поддержки сопрограмм, например std::coroutine_traits, std::coroutine_handle.

(начиная с C++20)

[править] Вариативные функции

Поддержка функций, которые принимают произвольное число параметров (например, через va_start, va_arg, va_end).

[править] Утилиты общего назначения

[править] Обмен и операции над типами

Определены в заголовочном файле <utility>
меняет местами значения двух объектов
(шаблон функции) [править]
(C++14)
заменяет аргумент новым значением и возвращает его предыдущее значение
(шаблон функции) [править]
(C++11)
пересылает аргумент функции
(шаблон функции) [править]
(C++11)
получает ссылку на rvalue
(шаблон функции) [править]
получает ссылку rvalue, если конструктор перемещения не бросает исключение
(шаблон функции) [править]
(C++17)
получает ссылку на константу её аргумента
(шаблон функции) [править]
(C++11)
получает ссылку на свой аргумент для использования в невычисленном контексте
(шаблон функции) [править]
преобразует перечисление в его базовый тип
(шаблон функции) [править]
Определены в заголовочном файле <concepts>
обменивает значения двух объектов
(объект точки настройки) [править]

[править] Целочисленные функции сравнения

Определены в заголовочном файле <utility>
сравнивает два целых значения без изменения значения, вызванного преобразованием
(шаблон функции) [править]
(C++20)
проверяет, находится ли целочисленное значение в диапазоне заданного целочисленного типа
(шаблон функции) [править]

[править] Операторы отношения

Определены в заголовочном файле <utility>
Определены в пространстве имён std::rel_ops
(устарело в C++20)
автоматически генерирует операторы сравнения на основе определённых пользователем operator== и operator<
(шаблон функции) [править]

[править] Пары и кортежи

Определены в заголовочном файле <utility>
реализует двойной кортеж, т.е. пару значений
(шаблон класса) [править]
тип тега, используемый для выбора правильной перегрузки функции для кусочного построения
(класс) [править]
объект типа piecewise_construct_t, используемый для устранения неоднозначности функций для кусочного построения
(константа) [править]
реализует последовательность целых чисел на этапе компиляции
(шаблон класса) [править]
Определены в заголовочном файле <tuple>
(C++11)
реализует контейнер фиксированного размера, который содержит элементы, возможно, разных типов
(шаблон класса) [править]
(C++17)
вызывает функцию с кортежем аргументов
(шаблон функции) [править]
создаёт объект с кортежем аргументов
(шаблон функции) [править]
Определены в заголовочном файле <tuple>
Определены в заголовочном файле <utility>
Определены в заголовочном файле <array>
Определены в заголовочном файле <ranges>
получает количество элементов кортежного типа
(шаблон класса) [править]
получает типы элементов кортежного типа
(шаблон класса) [править]

[править] Типы сумм и удаляемые оболочки типов

Определены в заголовочном файле <optional>
(C++17)
обёртка, которая может содержать или не содержать объект
(шаблон класса) [править]
Определены в заголовочном файле <expected>
(C++23)
оболочка, содержащая либо ожидаемое значение, либо значение ошибки
(шаблон класса) [править]
Определены в заголовочном файле <variant>
(C++17)
типобезопасное размеченное объединение
(шаблон класса) [править]
Определены в заголовочном файле <any>
(C++17)
объекты, содержащие экземпляры любого CopyConstructible типа.
(класс) [править]
Определены в заголовочном файле <utility>
метка конструирования на месте
(шаблон класса) [править]

[править] Набор битов

Определены в заголовочном файле <bitset>
реализует битовый массив постоянной длины
(класс) [править]

[править] Объекты функции

  • Частичное применение функции (например, std::bind) и сопутствующие утилиты: утилиты для привязки, такие как std::ref и std::placeholders
  • Полиморфные оболочки функций: std::function
  • Предопределённые функторы (например, std::plus, std::equal_to)
  • Метод преобразователей функций std::mem_fn.

[править] Поддержка хеширования

Определены в заголовочном файле <functional>
(C++11)
Объект хеш-функции
(шаблон класса) [править]

[править] Дата и время

[править] Элементарные преобразования строк

В дополнение к сложным анализаторам и средствам форматирования, зависящим от локали, предоставляемым библиотекой C++ Ввода/Вывода, библиотекой C Ввода/Вывода, Конвертерами строк C++ и Конвертерами строк C, заголовок <charconv> предоставляет лёгкие, не зависящие от локали, не выделяющие память, не выбрасывающие исключения парсеры и средства форматирования для арифметических типов.

Определены в заголовочном файле <charconv>
(C++17)
преобразует целое число или значение с плавающей точкой в последовательность символов
(функция) [править]
преобразует последовательность символов в целое число или значение с плавающей точкой
(функция) [править]
определяет форматирование для std::to_chars и std::from_chars
(перечисление) [править]

[править] Библиотека форматирования

Средства для безопасного форматирования строк.

Определены в заголовочном файле <format>
(C++20)
сохраняет форматированное представление аргументов в новой строке
(шаблон функции) [править]
(C++20)
записывает форматированное представление своих аргументов через итератор вывода
(шаблон функции) [править]
записывает форматированное представление своих аргументов через итератор вывода, не превышая заданного размера
(шаблон функции) [править]
определяет количество символов, необходимых для хранения форматированного представления его аргументов
(шаблон функции) [править]
(C++20)
не шаблонный variant std::format с использованием представления аргументов с удалением типа
(функция) [править]
не шаблонный variant std::format_to с использованием представления аргументов с удалением типа
(шаблон функции) [править]
(C++20)
шаблон класса, который определяет правила форматирования для данного типа
(шаблон класса) [править]
тип исключения, возникающий при ошибках форматирования
(класс) [править]

[править] Смотрите также

Документация по C для Библиотека утилит
Источник — «https://ru.cppreference.com/mwiki/index.php?title=cpp/utility&oldid=51759»