58# include <type_traits>
66 template <
typename F,
typename T>
68 requires(
const F & f,
const T & a,
const T & b)
70 { f(a, b) } -> std::convertible_to<bool>;
83 template <
typename F,
typename T>
96 template <
typename F,
typename T>
115 template <
typename T,
typename Key>
117 requires {
typename T::Node; } &&
118 requires(
T & t,
T &
t2,
const T &
ct,
119 typename T::Node * p,
const Key & key)
121 { t.getRoot() } -> std::convertible_to<typename T::Node *>;
122 { t.search(key) } -> std::convertible_to<typename T::Node *>;
123 { t.search_or_insert(p) } -> std::convertible_to<typename T::Node *>;
124 { t.insert_dup(p) } -> std::convertible_to<typename T::Node *>;
125 { t.remove(key) } -> std::convertible_to<typename T::Node *>;
126 {
ct.verify() } -> std::convertible_to<bool>;
129 requires (!
requires {
ct.getRoot(); } ||
132 {
ct.getRoot() } -> std::convertible_to<const typename T::Node *>;
134 requires (!
requires {
ct.search(key); } ||
137 {
ct.search(key) } -> std::convertible_to<const typename T::Node *>;
150 template <
typename T>
153 typename T::Item_Type;
185 template <
typename C>
187 requires {
typename C::Item_Type; }
and
188 requires(C & c,
const C &
cc,
const typename C::Item_Type & val)
190 {
cc.size() } -> std::convertible_to<size_t>;
191 {
cc.is_empty() } -> std::convertible_to<bool>;
197 c.mutable_for_each([](
typename C::Item_Type &) {});
221 template <
typename C>
224 requires(
const C &
cc)
234 template <
typename T>
236 std::is_integral_v<std::remove_cv_t<T>>
and
237 not std::is_same_v<std::remove_cv_t<T>,
bool>;
Concept that identifies types that can be converted or used as an Aleph Array.
Concept for Aleph-w mutable sequential containers.
Concept for Aleph-w sequential containers that can be iterated.
Concept for BST tree policies used by DynSetTree.
A callable that takes two const T& and returns bool.
Equivalence relation constraint for equality comparators.
Integral value accepted by linear-time integer sorting algorithms.
Strict weak ordering constraint for BST comparators.
Main namespace for Aleph-w library functions.
and
Check uniqueness with explicit hash + equality functors.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
std::decay_t< typename HeadC::Item_Type > T