#include <alpaqa/util/type-erasure.hpp>
Definition at line 118 of file type-erasure.hpp.
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...)) |
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 150 of file type-erasure.hpp.