Template Class delegate_base< return_type(parameter_types…)>

Inheritance Relationships

Derived Types

Class Documentation

template<typename return_type, typename ...parameter_types>
class legion::core::delegate_base<return_type(parameter_types...)>

Subclassed by legion::core::delegate< return_type(parameter_types…)>, legion::core::multicast_delegate< return_type(parameter_types…)>

Protected Types

using stub_type = return_type (*)(void *this_ptr, parameter_types...)
using allocator = void *(*)(void*)
using deleter = void (*)(void*)
struct invocation_element

Public Functions

invocation_element() = default
inline invocation_element(void *this_ptr, stub_type aStub, allocator aCopy = nullptr, allocator aMove = nullptr, deleter aDelete = nullptr)
inline invocation_element(const invocation_element &source)
inline invocation_element(invocation_element &&source)
inline ~invocation_element()
inline invocation_element &operator=(const invocation_element &source)
inline invocation_element &operator=(invocation_element &&source)
inline void Clone(invocation_element &target) const
inline bool operator==(const invocation_element &other) const
inline bool operator!=(const invocation_element &other) const

Public Members

void *object = nullptr
stub_type stub = nullptr
allocator copy = nullptr
allocator move = nullptr
deleter del = nullptr