MySQL 9.6.0
Source Code Documentation
mysql::sets::Map_interval_container< Set_traits_tp > Class Template Reference

Interval container using std::map as backing storage. More...

#include <aliases.h>

Inheritance diagram for mysql::sets::Map_interval_container< Set_traits_tp >:
[legend]

Public Member Functions

template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
 Map_interval_container (Args_t &&...args) noexcept
 
- Public Member Functions inherited from mysql::sets::Interval_container< Boundary_container_tp >
 Interval_container () noexcept=default
 Default constructor. More...
 
 Interval_container (const Interval_container &source)=default
 Copy constructor. More...
 
 Interval_container (Interval_container &&source) noexcept=default
 Move constructor, defaulted. More...
 
Interval_containeroperator= (const Interval_container &source)=default
 Copy assignment operator. More...
 
Interval_containeroperator= (Interval_container &&source) noexcept=default
 Move assignment operator, defaulted. More...
 
 ~Interval_container () noexcept=default
 Destructor. More...
 
 Interval_container (const Memory_resource_t &memory_resource) noexcept
 Construct an empty container using the specified Memory_resource. More...
 
 Interval_container (const Is_interval_set_over_traits< Set_traits_t > auto &source)
 Construct by copying any other Interval_set over the same boundary traits. More...
 
 Interval_container (const Is_interval_set_over_traits< Set_traits_t > auto &source, const Memory_resource_t &memory_resource)
 Construct by copying any other Interval_set over the same boundary traits. More...
 
Interval_containeroperator= (const Is_interval_set_over_traits< Set_traits_t > auto &source)
 Assign from any other Boundary_set over the same Set traits. More...
 
template<Is_interval_set_over_traits_unqualified< Set_traits_t > Source_t>
auto assign (Source_t &&source)
 Overwrite this object with source (copy-assigned). More...
 
decltype(auto) get_memory_resource () const noexcept
 Return the Memory_resource object that manages memory in this object, or a default-constructed Memory_resource if there is none. More...
 
void clear () noexcept
 Make this container empty. More...
 
auto & boundaries () &noexcept
 Return an lvalue reference to the underlying boundary container. More...
 
const auto & boundaries () const &noexcept
 Return a const lvalue reference to the underlying boundary container. More...
 
auto && boundaries () &&noexcept
 Return an rvalue reference to the underlying boundary container. More...
 
auto insert (const Element_t &element)
 Insert the given element (inplace union). More...
 
auto remove (const Element_t &element)
 Remove the given element (inplace subtraction). More...
 
auto inplace_union (const Interval_t &interval)
 Insert the given interval (inplace union). More...
 
auto inplace_union (Boundary_iterator_t &cursor, const Interval_t &interval)
 Insert the given interval (inplace union), reading and updating the given cursor. More...
 
template<Is_interval_set_over_traits_unqualified< Set_traits_t > Interval_set_t>
auto inplace_union (Interval_set_t &&interval_set)
 In-place insert the intervals of the given set into this container (inplace union). More...
 
auto inplace_subtract (const Interval_t &interval)
 Subtract the given interval. More...
 
auto inplace_subtract (Boundary_iterator_t &cursor, const Interval_t &interval)
 Subtract the given interval, reading and updating the given cursor. More...
 
template<Is_interval_set_over_traits_unqualified< Set_traits_t > Interval_set_t>
auto inplace_subtract (Interval_set_t &&interval_set)
 In-place subtract intervals of the given set from this container. More...
 
void inplace_intersect (const Interval_t &interval) noexcept
 In-place intersect this container with the given interval. More...
 
template<Is_interval_set_over_traits_unqualified< Set_traits_t > Interval_set_t>
auto inplace_intersect (Interval_set_t &&interval_set)
 In-place intersect this container with the given set. More...
 
- Public Member Functions inherited from mysql::sets::Interval_set_interface< Interval_container< Boundary_container_tp >, Boundary_container_tp >
const auto & disjoint_pairs_source () const
 
auto & disjoint_pairs_source ()
 
- Public Member Functions inherited from mysql::ranges::Disjoint_pairs_interface< Self_tp, Make_pair_tp >
auto begin () const
 Return const iterator to the beginning. More...
 
auto end () const
 Return const iterator to sentinel. More...
 
auto begin ()
 Return iterator to the beginning. 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 Base_t = detail::Map_interval_container_alias< Set_traits_tp >
 
using This_t = Map_interval_container< Set_traits_tp >
 

Additional Inherited Members

- Public Types inherited from mysql::sets::Interval_container< Boundary_container_tp >
using Boundary_container_t = Boundary_container_tp
 
using This_t = Interval_container< Boundary_container_t >
 
using Memory_resource_t = mysql::allocators::Memory_resource
 
using Allocator_t = typename Boundary_container_t::Allocator_t
 
using Boundary_iterator_t = typename Boundary_container_t::Iterator_t
 
using Interval_t = Interval< Set_traits_t >
 
using Storage_t = Storage_or_void< Boundary_container_t >
 
- Public Types inherited from mysql::sets::Interval_set_interface< Interval_container< Boundary_container_tp >, Boundary_container_tp >
using Boundary_set_t = Boundary_container_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_container_tp >
 
using Boundary_const_iterator_t = mysql::ranges::Range_const_iterator_type< Boundary_container_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, Make_pair_tp >
using Make_pair_t = Make_pair_tp
 
- Static Public Attributes inherited from mysql::sets::Interval_container< Boundary_container_tp >
static constexpr bool has_fast_insertion
 

Detailed Description

template<Is_bounded_set_traits Set_traits_tp>
class mysql::sets::Map_interval_container< Set_traits_tp >

Interval container using std::map as backing storage.

Member Typedef Documentation

◆ Base_t

template<Is_bounded_set_traits Set_traits_tp>
using mysql::sets::Map_interval_container< Set_traits_tp >::Base_t = detail::Map_interval_container_alias<Set_traits_tp>
private

◆ This_t

template<Is_bounded_set_traits Set_traits_tp>
using mysql::sets::Map_interval_container< Set_traits_tp >::This_t = Map_interval_container<Set_traits_tp>
private

Constructor & Destructor Documentation

◆ Map_interval_container()

template<Is_bounded_set_traits Set_traits_tp>
template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
mysql::sets::Map_interval_container< Set_traits_tp >::Map_interval_container ( Args_t &&...  args)
inlineexplicitnoexcept

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