scc  2022.4.0
SystemC components library
util::delegate< R(A...)> Class Template Reference

a fast alternative to std::function More...

#include <delegate.h>

Public Types

template<class C >
using member_pair = ::std::pair< C *const, R(C::*const)(A...)>
 
template<class C >
using const_member_pair = ::std::pair< C const *const, R(C::*const)(A...) const >
 

Public Member Functions

 delegate (delegate const &)=default
 
 delegate (delegate &&)=default
 
 delegate (::std::nullptr_t const) noexcept
 
template<class C , typename = typename ::std::enable_if<::std::is_class<C>{}>::type>
 delegate (C const *const o) noexcept
 
template<class C , typename = typename ::std::enable_if<::std::is_class<C>{}>::type>
 delegate (C const &o) noexcept
 
template<class C >
 delegate (C *const object_ptr, R(C::*const method_ptr)(A...))
 
template<class C >
 delegate (C *const object_ptr, R(C::*const method_ptr)(A...) const)
 
template<class C >
 delegate (C &object, R(C::*const method_ptr)(A...))
 
template<class C >
 delegate (C const &object, R(C::*const method_ptr)(A...) const)
 
template<typename T , typename = typename ::std::enable_if<!::std::is_same<delegate, typename ::std::decay<T>::type>{}>::type>
 delegate (T &&f)
 
delegateoperator= (delegate const &)=default
 
delegateoperator= (delegate &&)=default
 
template<class C >
delegateoperator= (R(C::*const rhs)(A...))
 
template<class C >
delegateoperator= (R(C::*const rhs)(A...) const)
 
template<typename T , typename = typename ::std::enable_if<!::std::is_same<delegate, typename ::std::decay<T>::type>{}>::type>
delegateoperator= (T &&f)
 
void reset ()
 
void reset_stub () noexcept
 
void swap (delegate &other) noexcept
 
bool operator== (delegate const &rhs) const noexcept
 
bool operator!= (delegate const &rhs) const noexcept
 
bool operator< (delegate const &rhs) const noexcept
 
bool operator== (::std::nullptr_t const) const noexcept
 
bool operator!= (::std::nullptr_t const) const noexcept
 
 operator bool () const noexcept
 
operator() (A... args) const
 

Static Public Member Functions

template<R(*)(A...) function_ptr>
static delegate from () noexcept
 
template<class C , R(C::*)(A...) method_ptr>
static delegate from (C *const object_ptr) noexcept
 
template<class C , R(C::*)(A...) const method_ptr>
static delegate from (C const *const object_ptr) noexcept
 
template<class C , R(C::*)(A...) method_ptr>
static delegate from (C &object) noexcept
 
template<class C , R(C::*)(A...) const method_ptr>
static delegate from (C const &object) noexcept
 
template<typename T >
static delegate from (T &&f)
 
static delegate from (R(*const function_ptr)(A...))
 
template<class C >
static delegate from (C *const object_ptr, R(C::*const method_ptr)(A...))
 
template<class C >
static delegate from (C const *const object_ptr, R(C::*const method_ptr)(A...) const)
 
template<class C >
static delegate from (C &object, R(C::*const method_ptr)(A...))
 
template<class C >
static delegate from (C const &object, R(C::*const method_ptr)(A...) const)
 

Friends

class ::std::hash< delegate >
 

Detailed Description

template<class R, class... A>
class util::delegate< R(A...)>

a fast alternative to std::function

Definition at line 37 of file delegate.h.


The documentation for this class was generated from the following file: