alpaqa pi-pico
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Static Public Member Functions | Static Private Member Functions | List of all members
Launderer< Class, ExtraArgs > Struct Template Reference

#include <alpaqa/util/type-erasure.hpp>

Detailed Description

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

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

+ Collaboration diagram for 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>
requires std::is_base_of_v<T, Class>
static constexpr auto invoker_ovl (R(T::*)(Args...) const)
 
template<auto M, class T , class R , class... Args>
requires std::is_base_of_v<T, Class>
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>
static constexpr auto do_invoke ( V self,
Args...  args,
ExtraArgs...   
) -> R
inlinestaticconstexprprivate

Definition at line 129 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>
requires std::is_base_of_v<T, Class>
static constexpr auto invoker_ovl ( R(T::*)(Args...) const  )
inlinestaticconstexprprivate

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

+ Here is the call graph for this function:

◆ invoker_ovl() [2/2]

template<class Class , class... ExtraArgs>
template<auto M, class T , class R , class... Args>
requires std::is_base_of_v<T, Class>
static constexpr auto invoker_ovl ( R(T::*)(Args...)  )
inlinestaticconstexprprivate

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

+ Here is the call graph for this function:

◆ invoker()

template<class Class , class... ExtraArgs>
template<auto Method>
static constexpr auto 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 157 of file type-erasure.hpp.


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