Spec-Zone.ru › C++

std::function_ref

Определён в заголовочном файле <functional>
template< class... >
class function_ref; // not defined
(1) (начиная с C++26)
template< class R, class... Args >
class function_ref<R(Args...)>;
template< class R, class... Args >
class function_ref<R(Args...) noexcept>;
template< class R, class... Args >
class function_ref<R(Args...) const>;
template< class R, class... Args >
class function_ref<R(Args...) const noexcept>;
(2) (начиная с C++26)

Шаблон класса std::function_ref — это невладеющая обёртка функции. Объекты std::function_ref могут хранить и вызывать ссылку на вызываемый объект — целевую сущность: функции, лямбда-выражения, выражения bind или другие функциональные объекты, но не указатели на функции-члены и указатели на объекты-члены. std::nontype можно использовать для создания std::function_ref, передавая указатели на функции, указатели на функции-члены и указатели на объекты-члены.

Специализации std::function_ref поддерживают все возможные комбинации cv-квалификаторов (за исключением volatile) и спецификаторов noexcept, указанные в параметре шаблона.

Каждая специализация std::function_ref является типом TriviallyCopyable, удовлетворяющим требованиям copyable.

Типы-члены

Член Определение
BoundEntityType (закрытый) неуказанный тип TriviallyCopyable, удовлетворяющий требованиям copyable и способный хранить указатель на объект или указатель на функцию
(тип-член, используемый только для иллюстрации*)
FunctionPointerType (закрытый) R(*)(BoundEntityType ,Args&&...)noexcept(noex )

где noex равно true, если noexcept присутствует в сигнатуре функции как часть параметра шаблона std::function_ref, и false в противном случае
(тип-член, используемый только для иллюстрации*)

Поля данных

Член Определение
BoundEntityType bound-entity связанный объект-сущность
(объект-член, используемый только для иллюстрации*)
FunctionPointerType thunk-ptr сохранённый указатель на функцию
(объект-член, используемый только для иллюстрации*)

Функции-члены

(конструктор)
создаёт новый объект function_ref
(открытая функция-член)
operator=
присваивает значение function_ref
(открытая функция-член)
operator()
вызывает сохранённую функцию-посредник объекта function_ref
(открытая функция-член)

Руководства по выведению типов

Примечания

Макрос проверки поддержки возможностей Значение Стандарт Возможность
__cpp_lib_function_ref 202306L (C++26) std::function_ref

Пример

См. также

function
(C++11)
копируемая обёртка для любого копируемого конструируемого вызываемого объекта
(шаблон класса)
copyable_function
(C++26)
копируемая обёртка для любого копируемого конструируемого вызываемого объекта, поддерживающая квалификаторы, указанные в сигнатуре вызова
(шаблон класса)
move_only_function
(C++23)
перемещаемая, но не копируемая обёртка для любого вызываемого объекта, поддерживающая квалификаторы, указанные в сигнатуре вызова
(шаблон класса)
nontype nontype_t
(C++26)
тег создания значения
(тег)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/function_ref

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API