hpx/functional/function_ref.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
template<typename R, typename ...Ts>
class function_ref<R(Ts...)>

Public Functions

template<typename F, typename FD = std::decay_t<F>, typename Enable = std::enable_if_t<!std::is_same_v<FD, function_ref> && is_invocable_r_v<R, F&, Ts...>>>
function_ref(F &&f)
function_ref(function_ref const &other)
template<typename F, typename FD = std::decay_t<F>, typename Enable = std::enable_if_t<!std::is_same_v<FD, function_ref> && is_invocable_r_v<R, F&, Ts...>>>
function_ref &operator=(F &&f)
function_ref &operator=(function_ref const &other)
template<typename F, typename T = std::remove_reference_t<F>, typename Enable = std::enable_if_t<!std::is_pointer_v<T>>>
void assign(F &&f)
template<typename T>
void assign(std::reference_wrapper<T> f_ref)
template<typename T>
void assign(T *f_ptr)
void swap(function_ref &f)
R operator()(Ts... vs) const
std::size_t get_function_address() const
char const *get_function_annotation() const
util::itt::string_handle get_function_annotation_itt() const

Protected Attributes

template<>
R (*vptr)(void*, Ts&&...)
void *object

Private Types

template<>
using VTable = util::detail::function_ref_vtable<R(Ts...)>

Private Static Functions

template<typename T>
static VTable const *get_vtable()