alpaqa pantr
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
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 <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

struct  VTableTypeTag< T >
 
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< 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<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.
 

Class Documentation

◆ alpaqa::util::VTableTypeTag

struct alpaqa::util::VTableTypeTag
+ Collaboration diagram for VTableTypeTag< T >:
Class Members
T * t = nullptr

◆ alpaqa::util::te_in_place_t

struct alpaqa::util::te_in_place_t
+ Collaboration diagram for te_in_place_t< T >: