MySQL 9.6.0
Source Code Documentation
mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp > Class Template Reference

CRTP base class used to implement Boundary Sets. More...

#include <boundary_set_interface.h>

Inheritance diagram for mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >:
[legend]

Public Types

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
 
- Public Types inherited from mysql::sets::Upper_lower_bound_interface< Self_tp, Set_traits_tp, Iterator_tp, Const_iterator_tp, Iterator_get_value >
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
 

Additional Inherited Members

- Public Member Functions inherited from mysql::sets::Upper_lower_bound_interface< Self_tp, Set_traits_tp, Iterator_tp, Const_iterator_tp, Iterator_get_value >
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...
 
- Static Public Member Functions inherited from mysql::sets::Upper_lower_bound_interface< Self_tp, Set_traits_tp, Iterator_tp, Const_iterator_tp, Iterator_get_value >
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...
 

Detailed Description

template<class Self_tp, Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
class mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >

CRTP base class used to implement Boundary Sets.

This defines all the lower_bound/upper_bound members based on the lower_bound_impl/upper_bound_impl members in the subclass.

The subclass additionally has to define the view members, e.g. by deriving from mysql::ranges::Collection_interface or mysql::containers::Basic_container_wrapper. Doing so will make it satisfy the mysql::sets::Is_boundary_set concept. As a convenience, use Boundary_view_interface to inherit both from this class and from Collection_interface, and use Basic_boundary_container_wrapper to inherit both this class and from Basic_container_wrapper.

Template Parameters
Self_tpThe subclass. This must satisfy Is_boundary_set_implementation.
Iterator_tpIterator type.
Const_iterator_tpConst iterator type.
Set_traits_tpSet Traits for the set.

Member Typedef Documentation

◆ Const_iterator_t

template<class Self_tp , Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Const_iterator_t = Const_iterator_tp

◆ Element_t

template<class Self_tp , Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Element_t = typename Set_traits_tp::Element_t

◆ Iterator_t

template<class Self_tp , Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Iterator_t = Iterator_tp

◆ Set_category_t

template<class Self_tp , Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Set_category_t = Boundary_set_category_tag

◆ Set_traits_t

template<class Self_tp , Is_boundary_iterator Iterator_tp, Is_boundary_iterator Const_iterator_tp, Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Boundary_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Set_traits_t = Set_traits_tp

The documentation for this class was generated from the following file: