MySQL 9.6.0
Source Code Documentation
mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp > Class Template Reference

CRTP base class used to define an Interval set based on an implementation having the member function boundaries(). More...

#include <interval_set_interface.h>

Inheritance diagram for mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >:
[legend]

Public Types

using Boundary_set_t = Boundary_set_tp
 
using This_t = Interval_set_interface< Self_t, Boundary_set_t >
 
using Set_category_t = Interval_set_category_tag
 
using Set_traits_t = Boundary_set_t::Set_traits_t
 
using Element_t = typename Set_traits_t::Element_t
 
using Make_interval_t = detail::Make_interval< Set_traits_t >
 
using Boundary_iterator_t = mysql::ranges::Range_iterator_type< Boundary_set_tp >
 
using Boundary_const_iterator_t = mysql::ranges::Range_const_iterator_type< Boundary_set_tp >
 
using Iterator_t = mysql::ranges::Disjoint_pairs_iterator< Boundary_iterator_t, Make_interval_t >
 
using Const_iterator_t = mysql::ranges::Disjoint_pairs_iterator< Boundary_const_iterator_t, Make_interval_t >
 
- Public Types inherited from mysql::ranges::Disjoint_pairs_interface< Self_tp, detail::Make_interval< Boundary_set_tp::Set_traits_t > >
using Make_pair_t = detail::Make_interval< Boundary_set_tp::Set_traits_t >
 

Public Member Functions

const auto & disjoint_pairs_source () const
 
auto & disjoint_pairs_source ()
 
- Public Member Functions inherited from mysql::ranges::Disjoint_pairs_interface< Self_tp, detail::Make_interval< Boundary_set_tp::Set_traits_t > >
auto begin () const
 Return const iterator to the beginning. More...
 
auto begin ()
 Return iterator to the beginning. More...
 
auto end () const
 Return const iterator to sentinel. More...
 
auto end ()
 Return iterator to sentinel. More...
 
bool empty () const
 Return true if the range is empty. More...
 
bool empty () const
 Return true if the range is empty. More...
 
auto size () const
 Return the number of pairs, i.e., half the size of the source. More...
 
auto size () const
 Return the number of pairs, i.e., half the size of the source. More...
 
- Public Member Functions inherited from mysql::ranges::Collection_interface< Self_tp >
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...
 

Private Types

using Self_t = Self_tp
 

Private Member Functions

const auto & self () const
 
auto & self ()
 

Detailed Description

template<class Self_tp, class Boundary_set_tp>
class mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >

CRTP base class used to define an Interval set based on an implementation having the member function boundaries().

This is for objects that own the underlying boundary set. If you need objects that do not own the underlying range - a view - use Interval_set_view.

Template Parameters
Self_tpClass that implements a boundaries() function that returns a Boundary_set_tp.
Boundary_set_tpType of boundary set.

Member Typedef Documentation

◆ Boundary_const_iterator_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Boundary_const_iterator_t = mysql::ranges::Range_const_iterator_type<Boundary_set_tp>

◆ Boundary_iterator_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Boundary_iterator_t = mysql::ranges::Range_iterator_type<Boundary_set_tp>

◆ Boundary_set_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Boundary_set_t = Boundary_set_tp

◆ Const_iterator_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Const_iterator_t = mysql::ranges::Disjoint_pairs_iterator<Boundary_const_iterator_t, Make_interval_t>

◆ Element_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Element_t = typename Set_traits_t::Element_t

◆ Iterator_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Iterator_t = mysql::ranges::Disjoint_pairs_iterator<Boundary_iterator_t, Make_interval_t>

◆ Make_interval_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Make_interval_t = detail::Make_interval<Set_traits_t>

◆ Self_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Self_t = Self_tp
private

◆ Set_category_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Set_category_t = Interval_set_category_tag

◆ Set_traits_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::Set_traits_t = Boundary_set_t::Set_traits_t

◆ This_t

template<class Self_tp , class Boundary_set_tp >
using mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::This_t = Interval_set_interface<Self_t, Boundary_set_t>

Member Function Documentation

◆ disjoint_pairs_source() [1/2]

template<class Self_tp , class Boundary_set_tp >
auto & mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::disjoint_pairs_source ( )
inline

◆ disjoint_pairs_source() [2/2]

template<class Self_tp , class Boundary_set_tp >
const auto & mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::disjoint_pairs_source ( ) const
inline

◆ self() [1/2]

template<class Self_tp , class Boundary_set_tp >
auto & mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::self ( )
inlineprivate

◆ self() [2/2]

template<class Self_tp , class Boundary_set_tp >
const auto & mysql::sets::Interval_set_interface< Self_tp, Boundary_set_tp >::self ( ) const
inlineprivate

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