13#if !defined(ULTRA_PROBLEM_H)
14#define ULTRA_PROBLEM_H
27 template<
Symbol S, symbol_set::weight_t = symbol_set::default_weight,
29 requires std::constructible_from<S, Args...>
30 std::add_pointer_t<S> insert(Args &&...);
32 template<std::derived_from<function> F,
33 symbol_set::weight_t W = symbol_set::default_weight,
34 std::convertible_to<symbol::category_t> C = symbol::category_t>
37 template<std::derived_from<function> F,
38 symbol_set::weight_t W = symbol_set::default_weight,
39 std::convertible_to<symbol::category_t> C = symbol::category_t>
40 std::add_pointer_t<F> insert(std::initializer_list<C>);
42 [[nodiscard]]
virtual bool is_valid()
const;
56template<
Symbol S, symbol_set::weight_t W,
class ...Args>
57requires std::constructible_from<S, Args...>
58std::add_pointer_t<S> problem::insert(Args &&... args)
60 return sset.insert<S, W>(std::forward<Args>(args)...);
63template<std::derived_from<function> F, symbol_set::weight_t W,
64 std::convertible_to<symbol::category_t> C>
66 std::initializer_list<C> pt)
68 return sset.
insert<F, W>(ret, pt);
71template<std::derived_from<function> F, symbol_set::weight_t W,
72 std::convertible_to<symbol::category_t> C>
73std::add_pointer_t<F> problem::insert(std::initializer_list<C> pt)
75 return sset.
insert<F, W>(pt);
Definition symbol_set.h:115
symbol * insert(std::unique_ptr< symbol >, weight_t=default_weight)
Definition symbol_set.cc:232
unsigned category_t
Definition symbol.h:55
Definition parameters.h:26
virtual bool is_valid() const
Definition problem.cc:21