C++ standard libraries extensions, version 2
From cppreference.net
<
cpp
|
experimental
Версия 2 Расширений для Основ Библиотеки C++, ISO/IEC TS 19568:2017, определяет следующие новые компоненты для стандартной библиотеки C++, в дополнение к тем, что определены в версии 1 :
Содержание |
Идиома обнаружения в C++
|
Определено в заголовочном файле
<experimental/type_traits>
|
|
|
псевдонимы шаблонов, которые определяют, является ли
template-id
корректно сформированным
(псевдоним шаблона) |
|
|
тип класса, возвращаемый
detected_t
при неудаче
(класс) |
|
Константно-распространяющая обёртка для указатель-подобных объектов
|
Определено в заголовке
<experimental/propagate_const>
|
|
|
обёртка с распространением константности для указатель-подобных объектов
(шаблон класса) |
|
Невладеющие указатели
|
Определено в заголовочном файле
<experimental/memory>
|
|
|
класс, представляющий невладеющий указатель
(шаблон класса) |
|
std::array
создание
|
Определено в заголовочном файле
<experimental/array>
|
|
|
(library fundamentals TS v2)
|
создает объект
std::array
, размер и, опционально, тип элементов которого выводятся из аргументов
(шаблон функции) |
ostream_joiner
|
Определено в заголовочном файле
<experimental/iterator>
|
|
|
выходной итератор, записывающий последовательные элементы в выходной поток, разделяя смежные элементы разделителем
(шаблон класса) |
|
Простые средства генерации случайных чисел
Для каждого потока поддерживается per-thread engine типа std::default_random_engine , инициализированный в непредсказуемом состоянии, который используется функциями ниже.
|
Определено в заголовке
<experimental/random>
|
|
|
генерирует случайное целое число в указанном диапазоне
(шаблон функции) |
|
|
переинициализирует поточно-ориентированный генератор случайных чисел
(функция) |
|
|
Определено в заголовке
<experimental/algorithm>
|
|
|
выбирает n случайных элементов из последовательности
(шаблон функции) |
|
|
случайным образом переупорядочивает элементы в диапазоне
(шаблон функции) |
|
Макросы проверки возможностей
|
Определено в заголовочном файле
<experimental/type_traits>
|
|
|
__cpp_lib_experimental_logical_traits
|
значение не менее
201511
указывает, что поддерживаются traits логических операторов
(макро-константа) |
|
__cpp_lib_experimental_detect
|
значение не менее
201505
указывает, что поддерживается идиома обнаружения
(макро-константа) |
|
Определено в заголовочном файле
<experimental/propagate_const>
|
|
|
__cpp_lib_experimental_propagate_const
|
значение не менее
201505
указывает, что поддерживается
propagate_const
(макро-константа) |
|
Определено в заголовочном файле
<experimental/functional>
|
|
|
__cpp_lib_experimental_not_fn
|
значение не менее
201406
указывает, что поддерживается
not_fn
(макро-константа) |
|
Определено в заголовочном файле
<experimental/memory>
|
|
|
__cpp_lib_experimental_observer_ptr
|
значение не менее
201411
указывает, что поддерживается
observer_ptr
(макро-константа) |
|
Определено в заголовочном файле
<experimental/array>
|
|
|
__cpp_lib_experimental_make_array
|
значение не менее
201505
указывает, что поддерживается
make_array
(макро-константа) |
|
Определено в заголовочном файле
<experimental/iterator>
|
|
|
__cpp_lib_experimental_ostream_joiner
|
значение не менее
201411
указывает, что поддерживается
ostream_joiner
(макро-константа) |
|
Определено в заголовочном файле
<experimental/vector>
|
|
|
__cpp_lib_experimental_erase_if
|
значение не менее
201411
указывает, что поддерживается унифицированное удаление из контейнеров
(макро-константа) |
|
Определено в заголовочном файле
<experimental/numeric>
|
|
|
__cpp_lib_experimental_gcd_lcm
|
значение не менее
201411
указывает, что поддерживаются
gcd
и
lcm
(макро-константа) |
|
Определено в заголовочном файле
<experimental/random>
|
|
|
__cpp_lib_experimental_randint
|
значение не менее
201511
указывает, что поддерживаются
randint
и связанные функции
(макро-константа) |
|
Определено в заголовочном файле
<experimental/source_location>
|
|
|
__cpp_lib_experimental_source_location
|
значение не менее
201505
указывает, что поддерживается
source_location
(макро-константа) |
Включено в C++17
Следующие компоненты библиотечных основ версии 2 были включены в стандарт C++17.
|
Определено в заголовочном файле
<experimental/type_traits>
|
|
вариативный псевдоним-шаблон для
void
(псевдоним-шаблон) |
|
|
Определено в заголовочном файле
<experimental/type_traits>
|
|
|
вариативный метафункциональный логический И
(шаблон класса) |
|
|
вариативный метафункциональный логический ИЛИ
(шаблон класса) |
|
|
метафункциональный логический НЕ
(шаблон класса) |
|
|
Определено в заголовочном файле
<experimental/functional>
|
|
|
создает функциональный объект, возвращающий дополнение результата хранимого функционального объекта
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/numeric>
|
|
constexpr
шаблон функции, возвращающий наибольший общий делитель двух целых чисел
(шаблон функции) |
|
constexpr
шаблон функции, возвращающий наименьшее общее кратное двух целых чисел
(шаблон функции) |
|
Включено в C++20
Следующие компоненты библиотеки fundamentals v2 были включены в стандарт C++20.
Унифицированное удаление элементов контейнеров
|
Определено в заголовочном файле
<experimental/string>
|
|
|
удаляет все элементы, равные определённому значению, из
std::basic_string
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::basic_string
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/deque>
|
|
|
удаляет все элементы, равные определённому значению, из
std::deque
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::deque
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/vector>
|
|
|
удаляет все элементы, равные определенному значению, из
std::vector
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::vector
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/forward_list>
|
|
|
удаляет все элементы, равные определённому значению, из
std::forward_list
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::forward_list
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/list>
|
|
|
удаляет все элементы, равные заданному значению, из
std::list
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::list
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/map>
|
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::map
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::multimap
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/set>
|
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::set
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::multiset
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/unordered_map>
|
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::unordered_map
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::unordered_multimap
(шаблон функции) |
|
|
Определено в заголовочном файле
<experimental/unordered_set>
|
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::unordered_set
(шаблон функции) |
|
|
удаляет все элементы, удовлетворяющие предикату, из
std::unordered_multiset
(шаблон функции) |
|
Захват информации исходного кода
|
Определено в заголовочном файле
<experimental/source_location>
|
|
|
класс, представляющий информацию об исходном коде, такую как имена файлов, номера строк и имена функций
(класс) |
|
std::array
преобразование
|
Определено в заголовочном файле
<experimental/array>
|
|
|
создает объект
std::array
из встроенного массива
(шаблон функции) |
|