#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 <exception>#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 > |
| 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 () |