alpaqa cmake-targets
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ProblemVTable< Conf > Struct Template Reference

#include <alpaqa/problem/type-erased-problem.hpp>

Detailed Description

template<Config Conf>
struct alpaqa::ProblemVTable< Conf >

Struct containing function pointers to all problem functions (like the objective and constraint functions, with their derivatives, and more).

Some default implementations are available. Internal struct, it is used by TypeErasedProblem.

Definition at line 24 of file type-erased-problem.hpp.

+ Inheritance diagram for ProblemVTable< Conf >:
+ Collaboration diagram for ProblemVTable< Conf >:

Public Types

using Sparsity = alpaqa::Sparsity< config_t >
 
using Box = alpaqa::Box< config_t >
 
template<class F >
using optional_function_t = util::BasicVTable::optional_function_t< F, ProblemVTable >
 
template<class F >
using required_function_t = typename required_function< F >::type
 A required function includes a void pointer to self, in addition to the arguments of F.
 

Public Member Functions

template<class P >
 ProblemVTable (std::in_place_t, P &p)
 
 ProblemVTable ()=default
 

Static Public Member Functions

static real_t calc_ŷ_dᵀŷ (const void *self, rvec g_ŷ, crvec y, crvec Σ, const ProblemVTable &vtable)
 
static index_t default_eval_inactive_indices_res_lna (const void *, real_t, crvec, crvec, rindexvec, const ProblemVTable &)
 
static void default_eval_jac_g (const void *, crvec, rvec, const ProblemVTable &)
 
static Sparsity default_get_jac_g_sparsity (const void *, const ProblemVTable &)
 
static void default_eval_grad_gi (const void *, crvec, index_t, rvec, const ProblemVTable &)
 
static void default_eval_hess_L_prod (const void *, crvec, crvec, real_t, crvec, rvec, const ProblemVTable &)
 
static void default_eval_hess_L (const void *, crvec, crvec, real_t, rvec, const ProblemVTable &)
 
static Sparsity default_get_hess_L_sparsity (const void *, const ProblemVTable &)
 
static void default_eval_hess_ψ_prod (const void *self, crvec x, crvec y, crvec, real_t scale, crvec v, rvec Hv, const ProblemVTable &vtable)
 
static void default_eval_hess_ψ (const void *self, crvec x, crvec y, crvec, real_t scale, rvec H_values, const ProblemVTable &vtable)
 
static Sparsity default_get_hess_ψ_sparsity (const void *, const ProblemVTable &)
 
static real_t default_eval_f_grad_f (const void *self, crvec x, rvec grad_fx, const ProblemVTable &vtable)
 
static real_t default_eval_f_g (const void *self, crvec x, rvec g, const ProblemVTable &vtable)
 
static void default_eval_grad_f_grad_g_prod (const void *self, crvec x, crvec y, rvec grad_f, rvec grad_gxy, const ProblemVTable &vtable)
 
static void default_eval_grad_L (const void *self, crvec x, crvec y, rvec grad_L, rvec work_n, const ProblemVTable &vtable)
 
static real_t default_eval_ψ (const void *self, crvec x, crvec y, crvec Σ, rvec ŷ, const ProblemVTable &vtable)
 
static void default_eval_grad_ψ (const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)
 
static real_t default_eval_ψ_grad_ψ (const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)
 
static const Boxdefault_get_box_C (const void *, const ProblemVTable &)
 
static const Boxdefault_get_box_D (const void *, const ProblemVTable &)
 
static void default_check (const void *, const ProblemVTable &)
 

Public Attributes

required_function_t< void(crvec z, rvec e) consteval_proj_diff_g
 
required_function_t< void(rvec y, real_t M) consteval_proj_multipliers
 
required_function_t< real_t(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) consteval_prox_grad_step
 
required_function_t< real_t(crvec x) consteval_f
 
required_function_t< void(crvec x, rvec grad_fx) consteval_grad_f
 
required_function_t< void(crvec x, rvec gx) consteval_g
 
required_function_t< void(crvec x, crvec y, rvec grad_gxy) consteval_grad_g_prod
 
optional_function_t< index_t(real_t γ, crvec x, crvec grad_ψ, rindexvec J) consteval_inactive_indices_res_lna = default_eval_inactive_indices_res_lna
 
optional_function_t< void(crvec x, rvec J_values) consteval_jac_g = default_eval_jac_g
 
optional_function_t< Sparsity() constget_jac_g_sparsity = default_get_jac_g_sparsity
 
optional_function_t< void(crvec x, index_t i, rvec grad_gi) consteval_grad_gi = default_eval_grad_gi
 
optional_function_t< void(crvec x, crvec y, real_t scale, crvec v, rvec Hv) consteval_hess_L_prod = default_eval_hess_L_prod
 
optional_function_t< void(crvec x, crvec y, real_t scale, rvec H_values) consteval_hess_L = default_eval_hess_L
 
optional_function_t< Sparsity() constget_hess_L_sparsity = default_get_hess_L_sparsity
 
optional_function_t< void(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) consteval_hess_ψ_prod = default_eval_hess_ψ_prod
 
optional_function_t< void(crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) consteval_hess_ψ = default_eval_hess_ψ
 
optional_function_t< Sparsity() constget_hess_ψ_sparsity = default_get_hess_ψ_sparsity
 
optional_function_t< real_t(crvec x, rvec grad_fx) consteval_f_grad_f = default_eval_f_grad_f
 
optional_function_t< real_t(crvec x, rvec g) consteval_f_g = default_eval_f_g
 
optional_function_t< void(crvec x, crvec y, rvec grad_f, rvec grad_gxy) consteval_grad_f_grad_g_prod = default_eval_grad_f_grad_g_prod
 
optional_function_t< void(crvec x, crvec y, rvec grad_L, rvec work_n) consteval_grad_L = default_eval_grad_L
 
optional_function_t< real_t(crvec x, crvec y, crvec Σ, rvec ŷ) consteval_ψ = default_eval_ψ
 
optional_function_t< void(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) consteval_grad_ψ = default_eval_grad_ψ
 
optional_function_t< real_t(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) consteval_ψ_grad_ψ = default_eval_ψ_grad_ψ
 
optional_function_t< const Box &() constget_box_C = default_get_box_C
 
optional_function_t< const Box &() constget_box_D = default_get_box_D
 
optional_function_t< void() constcheck = default_check
 
length_t n
 
length_t m
 
required_function_t< void(void *storage) constcopy = nullptr
 Copy-construct a new instance into storage.
 
required_function_t< void(void *storage)> move = nullptr
 Move-construct a new instance into storage.
 
required_function_t< void()> destroy = nullptr
 Destruct the given instance.
 
const std::type_info * type = &typeid(void)
 The original type of the stored object.
 

Member Typedef Documentation

◆ Sparsity

template<Config Conf>
using Sparsity = alpaqa::Sparsity<config_t>

Definition at line 26 of file type-erased-problem.hpp.

◆ Box

template<Config Conf>
using Box = alpaqa::Box<config_t>

Definition at line 27 of file type-erased-problem.hpp.

◆ optional_function_t

Definition at line 30 of file type-erased-problem.hpp.

◆ required_function_t

A required function includes a void pointer to self, in addition to the arguments of F.

Definition at line 81 of file type-erasure.hpp.

Constructor & Destructor Documentation

◆ ProblemVTable() [1/2]

template<Config Conf>
template<class P >
ProblemVTable ( std::in_place_t  ,
P &  p 
)
inline

Definition at line 147 of file type-erased-problem.hpp.

◆ ProblemVTable() [2/2]

template<Config Conf>
ProblemVTable ( )
default

Member Function Documentation

◆ calc_ŷ_dᵀŷ()

template<Config Conf>
auto calc_ŷ_dᵀŷ ( const void self,
rvec  g_ŷ,
crvec  y,
crvec  Σ,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 8 of file type-erased-problem.tpp.

◆ default_eval_inactive_indices_res_lna()

template<Config Conf>
auto default_eval_inactive_indices_res_lna ( const void ,
real_t  ,
crvec  ,
crvec  ,
rindexvec  ,
const ProblemVTable< Conf > &   
)
static

Definition at line 35 of file type-erased-problem.tpp.

◆ default_eval_jac_g()

template<Config Conf>
void default_eval_jac_g ( const void ,
crvec  ,
rvec  ,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 42 of file type-erased-problem.tpp.

◆ default_get_jac_g_sparsity()

template<Config Conf>
auto default_get_jac_g_sparsity ( const void ,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 49 of file type-erased-problem.tpp.

◆ default_eval_grad_gi()

template<Config Conf>
void default_eval_grad_gi ( const void ,
crvec  ,
index_t  ,
rvec  ,
const ProblemVTable< Conf > &   
)
static

Definition at line 55 of file type-erased-problem.tpp.

◆ default_eval_hess_L_prod()

template<Config Conf>
void default_eval_hess_L_prod ( const void ,
crvec  ,
crvec  ,
real_t  ,
crvec  ,
rvec  ,
const ProblemVTable< Conf > &   
)
static

Definition at line 61 of file type-erased-problem.tpp.

◆ default_eval_hess_L()

template<Config Conf>
void default_eval_hess_L ( const void ,
crvec  ,
crvec  ,
real_t  ,
rvec  ,
const ProblemVTable< Conf > &   
)
static

Definition at line 67 of file type-erased-problem.tpp.

◆ default_get_hess_L_sparsity()

template<Config Conf>
auto default_get_hess_L_sparsity ( const void ,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 73 of file type-erased-problem.tpp.

◆ default_eval_hess_ψ_prod()

template<Config Conf>
void default_eval_hess_ψ_prod ( const void self,
crvec  x,
crvec  y,
crvec  ,
real_t  scale,
crvec  v,
rvec  Hv,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 79 of file type-erased-problem.tpp.

◆ default_eval_hess_ψ()

template<Config Conf>
void default_eval_hess_ψ ( const void self,
crvec  x,
crvec  y,
crvec  ,
real_t  scale,
rvec  H_values,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 88 of file type-erased-problem.tpp.

◆ default_get_hess_ψ_sparsity()

template<Config Conf>
auto default_get_hess_ψ_sparsity ( const void ,
const ProblemVTable< Conf > &  vtable 
)
static

Definition at line 97 of file type-erased-problem.tpp.

◆ default_eval_f_grad_f()

template<Config Conf>
auto default_eval_f_grad_f ( const void self,
crvec  x,
rvec  grad_fx,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
const ProblemVTable &vtable) -> real_t {
vtable.eval_grad_f(self, x, grad_fx);
return vtable.eval_f(self, x);
}
typename Conf::real_t real_t
Definition config.hpp:65
constexpr const auto inf
Definition config.hpp:85
typename Conf::rvec rvec
Definition config.hpp:69
typename Conf::crvec crvec
Definition config.hpp:70
Struct containing function pointers to all problem functions (like the objective and constraint funct...
static real_t default_eval_f_grad_f(const void *self, crvec x, rvec grad_fx, const ProblemVTable &vtable)

Definition at line 105 of file type-erased-problem.tpp.

◆ default_eval_f_g()

template<Config Conf>
auto default_eval_f_g ( const void self,
crvec  x,
rvec  g,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
auto ProblemVTable<Conf>::default_eval_f_g(const void *self, crvec x, rvec g,
const ProblemVTable &vtable) -> real_t {
vtable.eval_g(self, x, g);
return vtable.eval_f(self, x);
}
static real_t default_eval_f_g(const void *self, crvec x, rvec g, const ProblemVTable &vtable)

Definition at line 115 of file type-erased-problem.tpp.

◆ default_eval_grad_f_grad_g_prod()

template<Config Conf>
void default_eval_grad_f_grad_g_prod ( const void self,
crvec  x,
crvec  y,
rvec  grad_f,
rvec  grad_gxy,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
rvec grad_f, rvec grad_gxy,
const ProblemVTable &vtable) {
vtable.eval_grad_f(self, x, grad_f);
vtable.eval_grad_g_prod(self, x, y, grad_gxy);
}
required_function_t< void(crvec x, rvec grad_fx) const > eval_grad_f
required_function_t< void(crvec x, crvec y, rvec grad_gxy) const > eval_grad_g_prod
static void default_eval_grad_f_grad_g_prod(const void *self, crvec x, crvec y, rvec grad_f, rvec grad_gxy, const ProblemVTable &vtable)

Definition at line 125 of file type-erased-problem.tpp.

◆ default_eval_grad_L()

template<Config Conf>
void default_eval_grad_L ( const void self,
crvec  x,
crvec  y,
rvec  grad_L,
rvec  work_n,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
void ProblemVTable<Conf>::default_eval_grad_L(const void *self, crvec x, crvec y, rvec grad_L,
rvec work_n, const ProblemVTable &vtable) {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_grad_f(self, x, grad_L);
vtable.eval_grad_f_grad_g_prod(self, x, y, grad_L, work_n, vtable);
grad_L += work_n;
}
static void default_eval_grad_L(const void *self, crvec x, crvec y, rvec grad_L, rvec work_n, const ProblemVTable &vtable)
optional_function_t< void(crvec x, crvec y, rvec grad_f, rvec grad_gxy) const > eval_grad_f_grad_g_prod

Definition at line 136 of file type-erased-problem.tpp.

◆ default_eval_ψ()

template<Config Conf>
auto default_eval_ψ ( const void self,
crvec  x,
crvec  y,
crvec  Σ,
rvec  ŷ,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
auto ProblemVTable<Conf>::default_eval_ψ(const void *self, crvec x, crvec y, crvec Σ, rvec ŷ,
const ProblemVTable &vtable) -> real_t {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_f(self, x);
auto f = vtable.eval_f_g(self, x, ŷ, vtable);
auto dᵀŷ = calc_ŷ_dᵀŷ(self, ŷ, y, Σ, vtable);
// ψ(x) = f(x) + ½ dᵀŷ
auto ψ = f + real_t(0.5) * dᵀŷ;
return ψ;
}
static real_t default_eval_ψ(const void *self, crvec x, crvec y, crvec Σ, rvec ŷ, const ProblemVTable &vtable)
static real_t calc_ŷ_dᵀŷ(const void *self, rvec g_ŷ, crvec y, crvec Σ, const ProblemVTable &vtable)

Definition at line 148 of file type-erased-problem.tpp.

◆ default_eval_grad_ψ()

template<Config Conf>
void default_eval_grad_ψ ( const void self,
crvec  x,
crvec  y,
crvec  Σ,
rvec  grad_ψ,
rvec  work_n,
rvec  work_m,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
rvec grad_ψ, rvec work_n, rvec work_m,
const ProblemVTable &vtable) {
if (y.size() == 0) /* [[unlikely]] */ {
vtable.eval_grad_f(self, x, grad_ψ);
} else {
vtable.eval_g(self, x, work_m);
(void)calc_ŷ_dᵀŷ(self, work_m, y, Σ, vtable);
vtable.eval_grad_L(self, x, work_m, grad_ψ, work_n, vtable);
}
}
required_function_t< void(crvec x, rvec gx) const > eval_g
static void default_eval_grad_ψ(const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)
optional_function_t< void(crvec x, crvec y, rvec grad_L, rvec work_n) const > eval_grad_L

Definition at line 164 of file type-erased-problem.tpp.

◆ default_eval_ψ_grad_ψ()

template<Config Conf>
auto default_eval_ψ_grad_ψ ( const void self,
crvec  x,
crvec  y,
crvec  Σ,
rvec  grad_ψ,
rvec  work_n,
rvec  work_m,
const ProblemVTable< Conf > &  vtable 
)
static
Implementation:
rvec grad_ψ, rvec work_n, rvec work_m,
const ProblemVTable &vtable) -> real_t {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_f_grad_f(self, x, grad_ψ, vtable);
auto &ŷ = work_m;
// ψ(x) = f(x) + ½ dᵀŷ
auto f = vtable.eval_f_g(self, x, ŷ, vtable);
auto dᵀŷ = calc_ŷ_dᵀŷ(self, ŷ, y, Σ, vtable);
auto ψ = f + real_t(0.5) * dᵀŷ;
// ∇ψ(x) = ∇f(x) + ∇g(x) ŷ
vtable.eval_grad_L(self, x, ŷ, grad_ψ, work_n, vtable);
return ψ;
}
static real_t default_eval_ψ_grad_ψ(const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)

Definition at line 180 of file type-erased-problem.tpp.

◆ default_get_box_C()

template<Config Conf>
auto default_get_box_C ( const void ,
const ProblemVTable< Conf > &   
)
static

Definition at line 198 of file type-erased-problem.tpp.

◆ default_get_box_D()

template<Config Conf>
auto default_get_box_D ( const void ,
const ProblemVTable< Conf > &   
)
static

Definition at line 203 of file type-erased-problem.tpp.

◆ default_check()

template<Config Conf>
void default_check ( const void ,
const ProblemVTable< Conf > &   
)
static

Definition at line 208 of file type-erased-problem.tpp.

Member Data Documentation

◆ eval_proj_diff_g

template<Config Conf>
required_function_t<void(crvec z, rvec e) const> eval_proj_diff_g

Definition at line 36 of file type-erased-problem.hpp.

◆ eval_proj_multipliers

template<Config Conf>
required_function_t<void(rvec y, real_t M) const> eval_proj_multipliers

Definition at line 38 of file type-erased-problem.hpp.

◆ eval_prox_grad_step

template<Config Conf>
required_function_t<real_t(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const> eval_prox_grad_step

Definition at line 40 of file type-erased-problem.hpp.

◆ eval_f

template<Config Conf>
required_function_t<real_t(crvec x) const> eval_f

Definition at line 42 of file type-erased-problem.hpp.

◆ eval_grad_f

template<Config Conf>
required_function_t<void(crvec x, rvec grad_fx) const> eval_grad_f

Definition at line 44 of file type-erased-problem.hpp.

◆ eval_g

template<Config Conf>
required_function_t<void(crvec x, rvec gx) const> eval_g

Definition at line 46 of file type-erased-problem.hpp.

◆ eval_grad_g_prod

template<Config Conf>
required_function_t<void(crvec x, crvec y, rvec grad_gxy) const> eval_grad_g_prod

Definition at line 48 of file type-erased-problem.hpp.

◆ eval_inactive_indices_res_lna

template<Config Conf>
optional_function_t<index_t(real_t γ, crvec x, crvec grad_ψ, rindexvec J) const> eval_inactive_indices_res_lna = default_eval_inactive_indices_res_lna

Definition at line 50 of file type-erased-problem.hpp.

◆ eval_jac_g

template<Config Conf>
optional_function_t<void(crvec x, rvec J_values) const> eval_jac_g = default_eval_jac_g

Definition at line 54 of file type-erased-problem.hpp.

◆ get_jac_g_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_jac_g_sparsity = default_get_jac_g_sparsity

Definition at line 56 of file type-erased-problem.hpp.

◆ eval_grad_gi

template<Config Conf>
optional_function_t<void(crvec x, index_t i, rvec grad_gi) const> eval_grad_gi = default_eval_grad_gi

Definition at line 58 of file type-erased-problem.hpp.

◆ eval_hess_L_prod

template<Config Conf>
optional_function_t<void(crvec x, crvec y, real_t scale, crvec v, rvec Hv) const> eval_hess_L_prod = default_eval_hess_L_prod

Definition at line 60 of file type-erased-problem.hpp.

◆ eval_hess_L

template<Config Conf>
optional_function_t<void(crvec x, crvec y, real_t scale, rvec H_values) const> eval_hess_L = default_eval_hess_L

Definition at line 62 of file type-erased-problem.hpp.

◆ get_hess_L_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_hess_L_sparsity = default_get_hess_L_sparsity

Definition at line 64 of file type-erased-problem.hpp.

◆ eval_hess_ψ_prod

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const> eval_hess_ψ_prod = default_eval_hess_ψ_prod

Definition at line 66 of file type-erased-problem.hpp.

◆ eval_hess_ψ

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) const> eval_hess_ψ = default_eval_hess_ψ

Definition at line 68 of file type-erased-problem.hpp.

◆ get_hess_ψ_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_hess_ψ_sparsity = default_get_hess_ψ_sparsity

Definition at line 70 of file type-erased-problem.hpp.

◆ eval_f_grad_f

template<Config Conf>
optional_function_t<real_t(crvec x, rvec grad_fx) const> eval_f_grad_f = default_eval_f_grad_f

Definition at line 74 of file type-erased-problem.hpp.

◆ eval_f_g

template<Config Conf>
optional_function_t<real_t(crvec x, rvec g) const> eval_f_g = default_eval_f_g

Definition at line 76 of file type-erased-problem.hpp.

◆ eval_grad_f_grad_g_prod

template<Config Conf>
optional_function_t<void(crvec x, crvec y, rvec grad_f, rvec grad_gxy) const> eval_grad_f_grad_g_prod = default_eval_grad_f_grad_g_prod

Definition at line 78 of file type-erased-problem.hpp.

◆ eval_grad_L

template<Config Conf>
optional_function_t<void(crvec x, crvec y, rvec grad_L, rvec work_n) const> eval_grad_L = default_eval_grad_L

Definition at line 82 of file type-erased-problem.hpp.

◆ eval_ψ

template<Config Conf>
optional_function_t<real_t(crvec x, crvec y, crvec Σ, rvec ŷ) const> eval_ψ = default_eval_ψ

Definition at line 84 of file type-erased-problem.hpp.

◆ eval_grad_ψ

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const> eval_grad_ψ = default_eval_grad_ψ

Definition at line 86 of file type-erased-problem.hpp.

◆ eval_ψ_grad_ψ

template<Config Conf>
optional_function_t<real_t(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const> eval_ψ_grad_ψ = default_eval_ψ_grad_ψ

Definition at line 88 of file type-erased-problem.hpp.

◆ get_box_C

template<Config Conf>
optional_function_t<const Box &() const> get_box_C = default_get_box_C

Definition at line 92 of file type-erased-problem.hpp.

◆ get_box_D

template<Config Conf>
optional_function_t<const Box &() const> get_box_D = default_get_box_D

Definition at line 94 of file type-erased-problem.hpp.

◆ check

template<Config Conf>
optional_function_t<void() const> check = default_check

Definition at line 98 of file type-erased-problem.hpp.

◆ n

template<Config Conf>
length_t n

Definition at line 144 of file type-erased-problem.hpp.

◆ m

template<Config Conf>
length_t m

Definition at line 144 of file type-erased-problem.hpp.

◆ copy

required_function_t<void(void *storage) const> copy = nullptr
inherited

Copy-construct a new instance into storage.

Definition at line 89 of file type-erasure.hpp.

◆ move

required_function_t<void(void *storage)> move = nullptr
inherited

Move-construct a new instance into storage.

Definition at line 91 of file type-erasure.hpp.

◆ destroy

required_function_t<void()> destroy = nullptr
inherited

Destruct the given instance.

Definition at line 93 of file type-erasure.hpp.

◆ type

const std::type_info* type = &typeid(void)
inherited

The original type of the stored object.

Definition at line 95 of file type-erasure.hpp.


The documentation for this struct was generated from the following files: