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

Расширения стандартных библиотек C++

Материал из cppreference.com
 
 
Технические спецификации
Библиотека файловой системы (ТС файловой системы)
Основы библиотеки (ТС основ библиотеки)
Основы библиотеки 2 (ТС основ библиотеки v2)
Основы библиотеки 3 (ТС основы библиотеки v3)
Расширения для параллелизма (ТС параллелизма)
Расширения для параллелизма 2 (ТС параллелизма v2)
Расширения для конкуренции 2 (ТС конкуренции v2)
Концепты (ТС концепций)
Диапазоны (ТС диапазонов)
Рефлексия (ТС рефлексии)
Специальные математические функции (ТО специальные функции)
 
 

Версия 1 Расширений C++ для Основ Библиотеки, ISO/IEC ТС 19568:2015 определяет следующие новые компоненты для стандартной библиотеки C++:

Не выбрано для включения в C++17

Следующие компоненты ISO/IEC ТС 19568:2015 не были выбраны для включения в C++17.

Модифицированные версии существующих классов для поддержки аллокаторов с удалением типов

Определены в заголовочном файле <experimental/functional>
модифицированная версия std::function с поддержкой аллокаторов с удалением типов
(шаблон класса)
Определены в заголовочном файле <experimental/future>
модифицированная версия std::promise с поддержкой аллокаторов с удалением типов
(шаблон класса)
модифицированная версия std::packaged_task с поддержкой аллокаторов с удалением типов
(шаблон класса)

Адаптеры ресурсов памяти

адаптирует аллокатор с memory_resource
(псевдоним шаблона)

Общие утилиты

Определены в заголовочном файле <experimental/utility>
тип заполнителя для удаления типа, например, в аллокаторах
(класс)
Определены в заголовочном файле <experimental/type_traits>
выводит подразумеваемый тип функции вызываемого объекта при вызове с заданными типами аргументов
(шаблон класса)

Макросы тестирования функций

Определены в заголовочном файле <experimental/optional>
__cpp_lib_experimental_optional
значение не менее 201411 указывает, что дополнительный тип поддерживается
(макроконстанта)
Определены в заголовочном файле <experimental/any>
__cpp_lib_experimental_any
значение не менее 201411 указывает, что поддерживается любой тип
(макроконстанта)
Определены в заголовочном файле <experimental/string_view>
__cpp_lib_experimental_string_view
значение не менее 201411 указывает, что поддерживается шаблон basic_string_view
(макроконстанта)
Определены в заголовочном файле <experimental/tuple>
__cpp_lib_experimental_apply
значение не менее 201402 указывает, что функция кортежа apply() поддерживается
(макроконстанта)
Определены в заголовочном файле <experimental/type_traits>
__cpp_lib_experimental_type_trait_variable_templates
значение не менее 201402 указывает, что свойства типа шаблона переменной поддерживаются
(макроконстанта)
__cpp_lib_experimental_invocation_type
значение не менее 201406 указывает, что свойства типа вызова поддерживаются
(макроконстанта)
Определены в заголовочном файле <experimental/functional>
__cpp_lib_experimental_boyer_moore_searching
значение не менее 201411 указывает, что поддерживаются дополнительные алгоритмы поиска
(макроконстанта)
__cpp_lib_experimental_function_erased_allocator
значение не менее 201406 указывает, что поддерживается аллокатор с удалением типа для std::function
(макроконстанта)
Определены в заголовочном файле <experimental/future>
__cpp_lib_experimental_promise_erased_allocator
значение не менее 201406 указывает, что поддерживается аллокатор с удалением типа для std::promise
(макроконстанта)
__cpp_lib_experimental_packaged_task_erased_allocator
значение не менее 201406 указывает, что поддерживается аллокатор с удалением типа для std::packaged_task
(макроконстанта)
Определены в заголовочном файле <experimental/memory>
__cpp_lib_experimental_shared_ptr_arrays
значение не менее 201406 указывает, что массивы shared_ptr поддерживаются
(макроконстанта)
Определены в заголовочном файле <experimental/memory_resource>
__cpp_lib_experimental_memory_resources
значение не менее 201402 указывает, что полиморфные ресурсы памяти поддерживаются
(макроконстанта)
Определены в заголовочном файле <experimental/algorithm>
__cpp_lib_experimental_sample
значение 201402 указывает, что алгоритм sample поддерживается
(макроконстанта)

Объединено с C++17

Следующие компоненты ISO/IEC ТС 19568:2015 были включены в C++17.

необязательные объекты

Определены в заголовочном файле <experimental/optional>
шаблон класса, представляющий необязательные объекты
(шаблон класса)

класс any

Определены в заголовочном файле <experimental/any>
типобезопасный контейнер для отдельных значений любого типа
(класс)

string_view

Определены в заголовочном файле <experimental/string_view>
ссылка на строку, не являющаяся владельцем
(шаблон класса)

Удаление типов и полиморфные аллокаторы

Полиморфные аллокаторы и ресурсы памяти

Сущности в этом разделе объявлены в пространстве имён std::experimental::pmr.

Определены в заголовочном файле <experimental/memory_resource>
абстрактный интерфейс для классов, которые инкапсулируют ресурсы памяти
(класс)
поточно-ориентированный memory_resource для управления выделениями в пулах с разными размерами блоков
(класс) [править]
небезопасный для потоков memory_resource, который управляет выделениями в пулах с разными размерами блоков
(класс) [править]
специальный memory_resource, который освобождает выделенную память только при уничтожении ресурса
(класс)
аллокатор, который поддерживает полиморфизм времени выполнения на основе memory_resource, он построен с
(шаблон класса)
возвращает статический программный memory_resource, который использует глобальный operator new и operator delete для выделения и освобождения памяти
(функция) [править]
возвращает статический memory_resource, который не выполняет выделение
(функция) [править]
получает memory_resource по умолчанию
(функция) [править]
устанавливает memory_resource по умолчанию
(функция) [править]

Удобные псевдонимы для контейнеров, использующих полиморфные аллокаторы

Удобные псевдонимы и шаблоны псевдонимов для контейнеров, использующих полиморфные аллокаторы, предоставляются в пространстве имён std::experimental::pmr для следующих шаблонов классов в стандартной библиотеке:

Список шаблонов контейнеров, для которых предусмотрены удобные псевдонимы

Поддержка массива для shared_ptr

Определены в заголовочном файле <experimental/memory>
Класс Описание
Модифицированная версия std::shared_ptr, поддерживающая массивы
(шаблон класса)
Модифицированная версия std::weak_ptr, поддерживающая массивы
(шаблон класса)

Алгоритмы выборки и поиска

Определены в заголовочном файле <experimental/algorithm>
выбирает n случайных элементов из последовательности
(шаблон функции)
применяет Searcher к последовательности
(шаблон функции)
Определены в заголовочном файле <experimental/functional>
реализация алгоритма поиска стандартной библиотеки C++
(шаблон класса)
вспомогательная функция для создания default_searcher
(шаблон функции)
реализация алгоритма поиска Бойера-Мура
(шаблон класса)
вспомогательная функция для создания boyer_moore_searcher
(шаблон функции)
реализация алгоритма поиска Бойера-Мура-Хорспула
(шаблон класса)
вспомогательная функция для создания boyer_moore_horspool_searcher
(шаблон функции)

Общие утилиты

Определены в заголовочном файле <experimental/tuple>
вызывает функцию для кортежа аргументов
(шаблон функции)

Кроме того, ТС предоставляет многочисленные constexpr шаблоны переменных для следующих свойств типов и других шаблонов классов в стандартной библиотеке:

Список свойств типов и других шаблонов классов, для которых предусмотрены шаблоны переменных