Namespaces
Variants

std:: function_ref

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
Определено в заголовочном файле <functional>
template < class ... >
class function_ref ; // не определено
(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 могут хранить и вызывать ссылки на 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 присутствует в сигнатуре функции как часть параметра шаблона std::function_ref , false в противном случае
( тип члена только для демонстрации* )

Члены данных

Участник Определение
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)
копируемая обёртка любого копируемого вызываемого объекта
(шаблон класса)
копируемая обёртка любого копируемого вызываемого объекта, поддерживающего квалификаторы в заданной сигнатуре вызова
(шаблон класса)
перемещаемая обёртка любого вызываемого объекта, поддерживающего квалификаторы в заданной сигнатуре вызова
(шаблон класса)
тег конструктора значения
(тег)