alpaqa 1.0.0a17
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Classes | Namespaces | Concepts | Functions
type-erasure.hpp File Reference
#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 ()