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

CRTP base class/mixin used to define a Nested set based on an implementation that provides the find and upper_bound functions. More...

#include <nested_set_interface.h>

Inheritance diagram for mysql::sets::detail::Nested_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 = Nested_set_category_tag
 
using Iterator_value_t = mysql::ranges::Iterator_value_type< Iterator_t >
 
using Set_traits_t = Set_traits_tp
 
using Key_traits_t = typename Set_traits_t::Key_traits_t
 
using Key_t = typename Key_traits_t::Element_t
 
using Mapped_category_t = typename Set_traits_t::Mapped_category_t
 
using Mapped_traits_t = typename Set_traits_t::Mapped_traits_t
 
using Mapped_t = typename Iterator_value_t::second_type
 

Public Member Functions

auto & operator[] (const Key_t &key) noexcept
 Return non-const reference to the mapped Set for the given key. More...
 
const auto & operator[] (const Key_t &key) const noexcept
 Return const reference to the mapped Set for the given key. More...
 

Private Types

using Self_t = Self_tp
 

Private Member Functions

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

Detailed Description

template<class Self_tp, std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
class mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >

CRTP base class/mixin used to define a Nested set based on an implementation that provides the find and upper_bound functions.

This provides the member types and operator[].

Template Parameters
Self_tpImplementation subclass.
Iterator_tpIterator type for the subclass.
Const_iterator_tpConst iterator type for the subclass.
Set_traits_tpSet traits.

Member Typedef Documentation

◆ Const_iterator_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Const_iterator_t = Const_iterator_tp

◆ Iterator_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Iterator_t = Iterator_tp

◆ Iterator_value_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Iterator_value_t = mysql::ranges::Iterator_value_type<Iterator_t>

◆ Key_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Key_t = typename Key_traits_t::Element_t

◆ Key_traits_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Key_traits_t = typename Set_traits_t::Key_traits_t

◆ Mapped_category_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Mapped_category_t = typename Set_traits_t::Mapped_category_t

◆ Mapped_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Mapped_t = typename Iterator_value_t::second_type

◆ Mapped_traits_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Mapped_traits_t = typename Set_traits_t::Mapped_traits_t

◆ Self_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Self_t = Self_tp
private

◆ Set_category_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Set_category_t = Nested_set_category_tag

◆ Set_traits_t

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
using mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::Set_traits_t = Set_traits_tp

Member Function Documentation

◆ operator[]() [1/2]

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
const auto & mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::operator[] ( const Key_t &  key) const
inlinenoexcept

Return const reference to the mapped Set for the given key.

If the key is not in the set, the behavior is undefined.

Parameters
keyKey to look for.

◆ operator[]() [2/2]

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
auto & mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::operator[] ( const Key_t &  key)
inlinenoexcept

Return non-const reference to the mapped Set for the given key.

If the key is not in the set, the behavior is undefined.

Parameters
keyKey to look for.

◆ self() [1/2]

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
auto & mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::self ( )
inlineprivate

◆ self() [2/2]

template<class Self_tp , std::forward_iterator Iterator_tp, std::forward_iterator Const_iterator_tp, Is_nested_set_traits Set_traits_tp>
const auto & mysql::sets::detail::Nested_set_interface< Self_tp, Iterator_tp, Const_iterator_tp, Set_traits_tp >::self ( ) const
inlineprivate

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