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 и спецификаторов noexcept, не включая volatile , указанные в параметре шаблона.

Каждая специализация std::function_ref — это тип TriviallyCopyable, который удовлетворяет copyable.

Члены

Имя члена Определение
bound-entity (private) объект, имеющий неспецифицированный тип TriviallyCopyable BoundEntityType, удовлетворяющий copyable и способный хранить указатель на значение объекта или указатель на значение функции
(член объекта, предназначенный только для иллюстрации*)
thunk-ptr (private) указатель на функцию типа R(*)(BoundEntityType, Args&&...) noexcept(/*noex*/) , где /*noex*/ равно true , если noexcept присутствует в сигнатуре функции как часть параметра шаблона std::function_ref
(член объекта, предназначенный только для иллюстрации*)

Члены-функции

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

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

Примечания

Макрос проверки наличия функции Значение Стандарт Функция
__cpp_lib_function_ref 202306L (C++26) std::function_ref

Пример

См. также

function
(C++11)
оборачивает вызываемый объект любого копируемого типа с указанной сигнатурой вызова функции
(шаблон класса)
copyable_function
(C++26)
уточнение std::move_only_function , которое оборачивает вызываемый объект любого копируемого типа
(шаблон класса)
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/w/cpp/utility/functional/function_ref

Spec-Zone.ru

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