MySQL 9.6.0
Source Code Documentation
mysql::sets::Is_nested_storage Concept Reference

True if Test is a Nested Set Storage. More...

#include <nested_set_meta.h>

Concept definition

template<class Test>
requires(Test t, const Test ct, typename Test::Key_t k,
t.assign(ct);
t.clear();
t.emplace(k);
t.emplace(it, k);
{ t.erase(it) } -> std::same_as<mysql::ranges::Range_iterator_type<Test>>;
}
True if Test is a Nested Set Storage.
Definition: nested_set_meta.h:154
Common helper for Is_nested_set and Is_nested_storage.
Definition: nested_set_meta.h:64
std::remove_cvref_t< decltype(std::declval< Range_t >().begin())> Range_iterator_type
Gives the iterator type, deduced from the begin() member.
Definition: meta.h:42

Detailed Description

True if Test is a Nested Set Storage.

This is similar to Is_nested_set, with the following exceptions:

  • This does not have to satisfy Is_set
  • This does not require member Set_category_t
  • This does not require subscript operator
  • This requires the following members:
    t.clear(); // make the set empty
    t.emplace(k); // insert element with the given key and empty mapped set
    t.emplace(it, k); // similar, with an iterator hint
    t.erase(it); // remove element pointed to by iterator
    typename Test::Container_t // type of underlying container