#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>
Go to the source code of this file.
Classes | |
class | bad_type_erased_type |
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_const_function< R(Args...)> |
struct | BasicVTable::optional_function< R(Args...), VTable > |
struct | BasicVTable::optional_const_function< R(Args...), 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 |
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 |