|
template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...> |
| | Basic_boundary_container_wrapper (Args_t &&...args) |
| |
| | Basic_boundary_container_wrapper (const Basic_boundary_container_wrapper &source)=default |
| |
| | Basic_boundary_container_wrapper (Basic_boundary_container_wrapper &&source) noexcept=default |
| |
| Basic_boundary_container_wrapper & | operator= (const Basic_boundary_container_wrapper &source)=default |
| |
| Basic_boundary_container_wrapper & | operator= (Basic_boundary_container_wrapper &&source) noexcept=default |
| |
| | ~Basic_boundary_container_wrapper ()=default |
| |
| | Basic_set_container_wrapper (Args_t &&...args) |
| |
| void | assign (Source_t &&source) |
| | Enable move-assign from any Basic_set_container_wrapper for a compatible set type (not necessarily for a derived class). More...
|
| |
| auto | assign (const First_iterator_t &first, const Sentinel_t &last) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Wrapped_t >().assign(first, last))) |
| | Assign a range defined by the two iterators to the wrapped object. More...
|
| |
| auto | assign (const Other_t &other) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Self_t >().assign(other.begin(), other.end()))) |
| | Copy-assign the other object to the wrapped object. More...
|
| |
| void | assign (Self_t &&other) noexcept |
| | Move-assign the other object to the wrapped object. More...
|
| |
template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...> |
| | Basic_container_wrapper (Args_t &&...args) noexcept(noexcept(Wrapped_t(std::forward< Args_t >(args)...))) |
| | Constructor that delegates all parameters to the constructor of the wrapped class. More...
|
| |
template<std::input_iterator First_iterator_t, std::sentinel_for< First_iterator_t > Sentinel_t>
requires requires(Wrapped_t w, First_iterator_t f, Sentinel_t s) { w.assign(f, s); } |
| auto | assign (const First_iterator_t &first, const Sentinel_t &last) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Wrapped_t >().assign(first, last))) |
| | Assign a range defined by the two iterators to the wrapped object. More...
|
| |
| template<class Other_t > |
| auto | assign (const Other_t &other) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Self_t >().assign(other.begin(), other.end()))) |
| | Copy-assign the other object to the wrapped object. More...
|
| |
| void | assign (Self_t &&other) noexcept |
| | Move-assign the other object to the wrapped object. More...
|
| |
| void | clear () noexcept |
| | Clear the wrapped object. More...
|
| |
| auto | get_memory_resource () const noexcept |
| | Return the memory resource used by the wrapped object. More...
|
| |
| auto | get_allocator () const noexcept |
| | Return the allocator used by the wrapped object. More...
|
| |
| auto | begin () noexcept |
| |
| auto | end () noexcept |
| |
| auto | begin () const noexcept |
| |
| auto | end () const noexcept |
| |
| auto | empty () const noexcept |
| |
| auto | size () const noexcept |
| |
| constexpr auto | cbegin () const |
| | Return constant iterator to the beginning. More...
|
| |
| constexpr auto | cend () const |
| | Return constant iterator to the end. More...
|
| |
| constexpr auto | rbegin () |
| | Return reverse iterator to the beginning. More...
|
| |
| constexpr auto | rend () |
| | Return reverse iterator to the end. More...
|
| |
| constexpr auto | rbegin () const |
| | Return const reverse iterator to the beginning. More...
|
| |
| constexpr auto | rend () const |
| | Return const reverse iterator to the end. More...
|
| |
| constexpr auto | crbegin () const |
| | Return const reverse iterator to the beginning. More...
|
| |
| constexpr auto | crend () const |
| | Return const reverse iterator to the end. More...
|
| |
| constexpr bool | empty () const |
| | Return true if the range is empty, i.e., begin() == end(). More...
|
| |
| constexpr | operator bool () const |
| | Return true if the range is non-empty, i.e., begin() != end(). More...
|
| |
| constexpr bool | operator! () const |
| | Return true if the range is empty, i.e., begin() == end(). More...
|
| |
| constexpr auto | size () const |
| | Return the number of elements in this view, unsigned (size_t), by computing std::ranges::distance(begin, end) More...
|
| |
| constexpr auto | ssize () const |
| | Return the number of elements in this view, signed (ptrdiff_t). More...
|
| |
| constexpr decltype(auto) | front () const |
| | Return the first element. More...
|
| |
| constexpr decltype(auto) | back () const |
| | Return the last element. Enabled if we have bidirectional iterators. More...
|
| |
| constexpr decltype(auto) | operator[] (std::ptrdiff_t n) |
| | Return the n'th element, possibly mutable. More...
|
| |
| constexpr decltype(auto) | operator[] (std::ptrdiff_t n) const |
| | Return the n'th element, const. More...
|
| |
| constexpr auto * | data () |
| | Return pointer to underlying contiguous memory. More...
|
| |
| constexpr auto * | data () const |
| | Return const pointer to underlying contiguous memory. More...
|
| |
| constexpr Iterator_t | lower_bound (const Iterator_t &hint, const Element_t &element) |
| | Return the lower bound for element, using an iterator hint known to be less than or equal to the correct result. More...
|
| |
| constexpr Const_iterator_t | lower_bound (const Const_iterator_t &hint, const Element_t &element) const |
| | Return the lower bound for element, using an iterator hint known to be less than or equal to the correct result. More...
|
| |
| constexpr Iterator_t | lower_bound (const Element_t &element) |
| | Return the lower bound for element. More...
|
| |
| constexpr Const_iterator_t | lower_bound (const Element_t &element) const |
| | Return the lower bound for element. More...
|
| |
| constexpr Iterator_t | upper_bound (const Iterator_t &hint, const Element_t &element) |
| | Return the upper bound for element, using an iterator hint known to be less than or equal to the correct result. More...
|
| |
| constexpr Const_iterator_t | upper_bound (const Const_iterator_t &hint, const Element_t &element) const |
| | Return the upper bound for element, using an iterator hint known to be less than or equal to the correct result. More...
|
| |
| constexpr Iterator_t | upper_bound (const Element_t &element) |
| | Return the upper bound for element. More...
|
| |
| constexpr Const_iterator_t | upper_bound (const Element_t &element) const |
| | Return the upper bound for element. More...
|
| |
|
| using | Wrapped_t = Wrapped_tp |
| |
| using | Iterator_t = Iterator_tp |
| |
| using | Const_iterator_t = Const_iterator_tp |
| |
| using | Set_category_t = Boundary_set_category_tag |
| |
| using | Set_traits_t = Set_traits_tp |
| |
| using | Element_t = typename Set_traits_tp::Element_t |
| |
| using | Iterator_t = Iterator_tp |
| |
| using | Const_iterator_t = Const_iterator_tp |
| |
| using | Set_traits_t = Set_traits_tp |
| |
| using | Iterator_getter_t = Iterator_getter_tp |
| |
| using | Element_t = typename Set_traits_t::Element_t |
| |
| static constexpr Iter_t | lower_bound_dispatch (Self_arg_t &self_arg, const Iter_t &hint, const Element_t &element) |
| | Implements the lower_bound functions with hint defined above, checking if the hint is already the correct answer, and otherwise delegating to the implementing class. More...
|
| |
| static constexpr auto | lower_bound_dispatch (Self_arg_t &self_arg, const Element_t &element) |
| | Implements the lower_bound functions without hint defined above. More...
|
| |
| static constexpr Iter_t | upper_bound_dispatch (Self_arg_t &self_arg, const Iter_t &hint, const Element_t &element) |
| | Implements the upper_bound functions with hint defined above, checking if the hint is already the correct answer, and otherwise delegating to the implementing class. More...
|
| |
| static constexpr auto | upper_bound_dispatch (Self_arg_t &self_arg, const Element_t &element) |
| | Implements the upper_bound functions without hint defined above. More...
|
| |
| auto & | wrapped () &noexcept |
| |
| const auto & | wrapped () const &noexcept |
| |
| auto && | wrapped () &&noexcept |
| |
template<class Self_tp, class Wrapped_tp, mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
class mysql::sets::Basic_boundary_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >
CRTP base class/mixin, used to implement Boundary Sets that are container wrappers.
This defines all the lower_bound and upper_bound members based on lower_bound_impl and upper_bound_impl members in the subclass, and also implements all the container members defined by mysql::containers::Basic_container_wrapper.
- Template Parameters
-
| Self_tp | Class deriving from this class. |
| Wrapped_tp | Type of the wrapped boundary set class. |
| shall_catch_tp | Whether assign should catch bad_alloc exceptions and convert them to Return_status return values. |