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 (публичный член-функция) |
|
(C++26) | присваивает function_ref (публичный член-функция) |
|
(C++26) | вызывает сохранённый объект-обёртку function_ref (публичный член-функция) |
Руководства по выводу типов
Примечания
| Макрос проверки наличия функции | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_function_ref | 202306L | (C++26) |
std::function_ref |
Пример
См. также
|
(C++11) | оборачивает вызываемый объект любого копируемого типа с указанной сигнатурой вызова функции (шаблон класса) |
|
(C++26) | уточнение std::move_only_function , которое оборачивает вызываемый объект любого копируемого типа (шаблон класса) |
|
(C++23) | оборачивает вызываемый объект любого типа с указанной сигнатурой вызова функции (шаблон класса) |
|
(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