template<typename T, typename Key>
requires {
typename T::Node; }
and
requires(
T & t,
T &
t2,
const T &
ct,
typename T::Node * p, const Key & key)
{
{ t.getRoot() } -> std::convertible_to<typename T::Node *>;
{ t.search(key) } -> std::convertible_to<typename T::Node *>;
{ t.search_or_insert(p) } -> std::convertible_to<typename T::Node *>;
{ t.insert_dup(p) } -> std::convertible_to<typename T::Node *>;
{ t.remove(key) } -> std::convertible_to<typename T::Node *>;
{
ct.verify() } -> std::convertible_to<bool>;
{ t.get_compare() };
requires not requires {
ct.getRoot(); }
or requires {
{
ct.getRoot() } -> std::convertible_to<const typename T::Node *>;
};
requires (
not requires {
ct.search(key); }
or
requires
{
{
ct.search(key) } -> std::convertible_to<const typename T::Node *>;
});
}
Concept for BST tree policies used by DynSetTree.
size_t blossom_maximum_cardinality_matching(const GT &g, DynDlist< typename GT::Arc * > &matching, SA sa=SA())
Alias of compute_maximum_cardinality_general_matching().
and
Check uniqueness with explicit hash + equality functors.
std::decay_t< typename HeadC::Item_Type > T
Concept for BST tree policies used by DynSetTree.
Checks that an instantiated tree type T = Tree<Key, Compare> exposes the minimal interface required by DynSetTree: a Node type alias and the core operations getRoot, search, search_or_insert, insert_dup, remove, verify, swap, and get_compare.
Optional operations (join, select, position, …) are NOT checked here because not every tree type supports them.
- Template Parameters
-
| T | the fully instantiated tree type, e.g. Avl_Tree<int>. |
| Key | the key type stored in the tree. |
Definition at line 163 of file ah-concepts.H.