guanaqo 1.0.0-alpha.27
Utilities for scientific software
Loading...
Searching...
No Matches
guanaqo::detail::Launderer< Class, ExtraArgs > Struct Template Reference

#include <guanaqo/type-erasure.hpp>

Detailed Description

template<class Class, class... ExtraArgs>
struct guanaqo::detail::Launderer< Class, ExtraArgs >

Definition at line 164 of file type-erasure.hpp.

Collaboration diagram for guanaqo::detail::Launderer< Class, ExtraArgs >:

Static Public Member Functions

template<auto Method>
static constexpr auto invoker ()
 Returns a function that accepts a void pointer, casts it to the class type of the member function Method, launders it, and then invokes Method with it, passing on the arguments to Method.

Static Private Member Functions

template<auto M, class V, class C, class R, class... Args>
static constexpr auto do_invoke (V *self, Args... args, ExtraArgs...) -> R
template<auto M, class T, class R, class... Args>
static constexpr auto invoker_ovl (R(T::*)(Args...) const)
template<auto M, class T, class R, class... Args>
static constexpr auto invoker_ovl (R(T::*)(Args...))

Member Function Documentation

◆ do_invoke()

template<class Class, class... ExtraArgs>
template<auto M, class V, class C, class R, class... Args>
constexpr auto guanaqo::detail::Launderer< Class, ExtraArgs >::do_invoke ( V * self,
Args... args,
ExtraArgs...  ) -> R
inlinestaticconstexprprivate

Definition at line 168 of file type-erasure.hpp.

Here is the caller graph for this function:

◆ invoker_ovl() [1/2]

template<class Class, class... ExtraArgs>
template<auto M, class T, class R, class... Args>
constexpr auto guanaqo::detail::Launderer< Class, ExtraArgs >::invoker_ovl ( R(T::*  )(Args...) const)
inlinestaticconstexprprivate

Definition at line 174 of file type-erasure.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invoker_ovl() [2/2]

template<class Class, class... ExtraArgs>
template<auto M, class T, class R, class... Args>
constexpr auto guanaqo::detail::Launderer< Class, ExtraArgs >::invoker_ovl ( R(T::*  )(Args...))
inlinestaticconstexprprivate

Definition at line 181 of file type-erasure.hpp.

Here is the call graph for this function:

◆ invoker()

template<class Class, class... ExtraArgs>
template<auto Method>
constexpr auto guanaqo::detail::Launderer< Class, ExtraArgs >::invoker ( )
inlinestaticconstexpr

Returns a function that accepts a void pointer, casts it to the class type of the member function Method, launders it, and then invokes Method with it, passing on the arguments to Method.

The function can also accept additional arguments at the end, of type ExtraArgs.

Definition at line 196 of file type-erasure.hpp.

Here is the call graph for this function:

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