MySQL 9.6.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: