#include <alpaqa/export.hpp>#include <alpaqa/util/demangled-typename.hpp>#include <alpaqa/util/noop-delete.hpp>#include <alpaqa/util/type-traits.hpp>#include <algorithm>#include <cassert>#include <cstddef>#include <functional>#include <memory>#include <new>#include <stdexcept>#include <type_traits>#include <typeinfo>#include <utility>
 Include dependency graph for type-erasure.hpp:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| class | bad_type_erased_type | 
| class | bad_type_erased_constness | 
| struct | BasicVTable | 
| Struct that stores the size of a polymorphic object, as well as pointers to functions to copy, move or destroy the object.  More... | |
| struct | BasicVTable::required_function< R(Args...)> | 
| struct | BasicVTable::required_function< R(Args...) const > | 
| struct | BasicVTable::optional_function< R(Args...), VTable > | 
| struct | BasicVTable::optional_function< R(Args...) const, VTable > | 
| struct | Launderer< Class, ExtraArgs > | 
| struct | te_in_place_t< T > | 
Similar to std::in_place_t.  More... | |
| class | TypeErased< VTable, Allocator, SmallBufferSize > | 
| Class for polymorphism through type erasure.  More... | |
| struct | TypeErased< VTable, Allocator, SmallBufferSize >::Deallocator | 
| Deallocates the storage when destroyed.  More... | |
Namespaces | |
| namespace | alpaqa | 
| namespace | alpaqa::util | 
| namespace | alpaqa::util::detail | 
Concepts | |
| concept | alpaqa::util::derived_from_TypeErased | 
Functions | |
| template<class Class , auto Method, class... ExtraArgs> | |
| constexpr auto | type_erased_wrapped () | 
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.     | |
| template<class VTable , class Allocator > | |
| constexpr size_t | default_te_buffer_size () | 
| template<class... Types> | |
| constexpr size_t | required_te_buffer_size_for () | 
Variables | |
| template<class T > | |
| constexpr te_in_place_t< T > | te_in_place | 
| Convenience instance of te_in_place_t.   | |
| struct alpaqa::util::te_in_place_t | 
 Collaboration diagram for te_in_place_t< T >: