std:: function_ref
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<functional>
|
||
|
template
<
class
...
>
class function_ref ; // не определено |
(1) | (начиная с C++26) |
|
template
<
class
R,
class
...
Args
>
class
function_ref
<
R
(
Args...
)
>
;
|
(2) | (начиная с C++26) |
Шаблон класса
std::function_ref
является невладеющей обёрткой функции.
Объекты
std::function_ref
могут хранить и вызывать ссылки на
Callable
целевые объекты
- функции,
лямбда-выражения
,
bind-выражения
или другие функциональные объекты, но не указатели на методы класса и указатели на члены класса.
std::
nontype
может быть использован для создания
std::function_ref
путём передачи указателей на функции, указателей на методы класса и указателей на члены класса.
std::function_ref
поддерживает все возможные комбинации
cv-квалификаторов
(за исключением
volatile
) и
спецификаторов noexcept
, указанных в его шаблонном параметре.
Каждая специализация
std::function_ref
является
TriviallyCopyable
типом, который удовлетворяет
copyable
.
Содержание |
Типы членов
| Член | Определение |
BoundEntityType
(private)
|
неуказанный
TriviallyCopyable
тип, который удовлетворяет
copyable
и способен хранить указатель на объект или указатель на функцию
( тип члена только для демонстрации* ) |
FunctionPointerType
(private)
|
R
(
*
)
(
BoundEntityType
, Args
&&
...
)
noexcept
(
noex
)
где
noex
равен
true
если
noexcept
присутствует в сигнатуре функции как часть параметра шаблона
|
Члены данных
| Участник | Определение |
BoundEntityType
bound-entity
|
объект связанной сущности
( объект-участник только для демонстрации* ) |
FunctionPointerType
thunk-ptr
|
сохраненный указатель на функцию
( объект-участник только для демонстрации* ) |
Функции-члены
создает новый объект
function_ref
(публичная функция-член) |
|
присваивает значение
function_ref
(публичная функция-член) |
|
вызывает сохраненный thunk объекта
function_ref
(публичная функция-член) |
Руководства по выводу
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_function_ref
|
202306L
|
(C++26) |
std::function_ref
|
Пример
|
Этот раздел не завершён
Причина: пример |
Смотрите также
|
(C++11)
|
копируемая обёртка любого копируемого вызываемого объекта
(шаблон класса) |
|
(C++26)
|
копируемая обёртка любого копируемого вызываемого объекта, поддерживающего квалификаторы в заданной сигнатуре вызова
(шаблон класса) |
|
(C++23)
|
перемещаемая обёртка любого вызываемого объекта, поддерживающего квалификаторы в заданной сигнатуре вызова
(шаблон класса) |
|
(C++26)
|
тег конструктора значения
(тег) |