24#ifndef MYSQL_SETS_ALIASES_H
25#define MYSQL_SETS_ALIASES_H
52template <
template <
class,
class,
class,
class>
class Map_template_t,
53 Is_ordered_set_traits Set_traits_t,
54 class Mapped_t =
typename Set_traits_t::Element_t>
56 typename Set_traits_t::Element_t, Mapped_t,
typename Set_traits_t::Less_t,
58 std::pair<const typename Set_traits_t::Element_t, Mapped_t>>>;
76template <Is_bounded_set_traits Set_traits_t>
81template <Is_bounded_set_traits Set_traits_t>
86template <Is_bounded_set_traits Set_traits_t>
91template <Is_bounded_set_traits Set_traits_t>
100template <Is_bounded_set_traits Set_traits_t>
105template <Is_bounded_set_traits Set_traits_t>
110template <Is_bounded_set_traits Set_traits_t>
115template <Is_bounded_set_traits Set_traits_t>
120template <Is_ordered_set_traits Key_traits_t, Is_set Mapped_t>
123 typename Mapped_t::Set_category_t>,
141template <Is_bounded_set_traits Set_traits_tp>
148 template <
class... Args_t>
151 noexcept(
Base_t(std::forward<Args_t>(args)...)))
152 :
Base_t(std::forward<Args_t>(args)...) {}
154 template <Is_boundary_set_over_traits_unqualified<Set_traits_tp> Other_t>
156 noexcept(this->
assign(std::forward<Other_t>(other)))) {
157 this->
assign(std::forward<Other_t>(other));
163template <Is_bounded_set_traits Set_traits_tp>
170 template <
class... Args_t>
173 noexcept(
Base_t(std::forward<Args_t>(args)...)))
174 :
Base_t(std::forward<Args_t>(args)...) {}
176 template <Is_boundary_set_over_traits_unqualified<Set_traits_tp> Other_t>
178 noexcept(this->
assign(std::forward<Other_t>(other)))) {
179 this->
assign(std::forward<Other_t>(other));
185template <Is_bounded_set_traits Set_traits_tp>
192 template <
class... Args_t>
195 noexcept(
Base_t(std::forward<Args_t>(args)...)))
196 :
Base_t(std::forward<Args_t>(args)...) {}
198 template <Is_
interval_set_over_traits_unqualified<Set_traits_tp> Other_t>
200 noexcept(this->
assign(std::forward<Other_t>(other)))) {
201 this->
assign(std::forward<Other_t>(other));
207template <Is_bounded_set_traits Set_traits_tp>
214 template <
class... Args_t>
217 noexcept(
Base_t(std::forward<Args_t>(args)...)))
218 :
Base_t(std::forward<Args_t>(args)...) {}
220 template <Is_
interval_set_over_traits_unqualified<Set_traits_tp> Other_t>
222 noexcept(this->
assign(std::forward<Other_t>(other)))) {
223 this->
assign(std::forward<Other_t>(other));
233template <Is_bounded_set_traits Set_traits_tp>
240 template <
class... Args_t>
243 :
Base_t(std::forward<Args_t>(args)...) {}
247template <Is_bounded_set_traits Set_traits_tp>
254 template <
class... Args_t>
257 :
Base_t(std::forward<Args_t>(args)...) {}
261template <Is_bounded_set_traits Set_traits_tp>
268 template <
class... Args_t>
271 :
Base_t(std::forward<Args_t>(args)...) {}
275template <Is_bounded_set_traits Set_traits_tp>
282 template <
class... Args_t>
285 :
Base_t(std::forward<Args_t>(args)...) {}
289template <Is_ordered_set_traits Key_traits_tp, Is_set Mapped_tp>
296 template <
class... Args_t>
299 :
Base_t(std::forward<Args_t>(args)...) {}
Allocator using a Memory_resource to do the allocation.
Definition: allocator.h:52
CRTP base class to provide members of a collection based on an implementation that provides begin/end...
Definition: collection_interface.h:90
Container for intervals.
Definition: interval_container.h:49
auto assign(Source_t &&source)
Overwrite this object with source (copy-assigned).
Boundary container using std::map as backing storage.
Definition: aliases.h:235
Map_boundary_container(Args_t &&...args) noexcept
Definition: aliases.h:242
Map_boundary_container< Set_traits_tp > This_t
Definition: aliases.h:237
detail::Map_boundary_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:236
Interval container using std::map as backing storage.
Definition: aliases.h:263
Map_interval_container(Args_t &&...args) noexcept
Definition: aliases.h:270
Map_interval_container< Set_traits_tp > This_t
Definition: aliases.h:265
detail::Map_interval_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:264
Nested set container using std::map as backing storage.
Definition: aliases.h:291
Map_nested_container(Args_t &&...args) noexcept
Definition: aliases.h:298
Map_nested_container< Key_traits_tp, Mapped_tp > This_t
Definition: aliases.h:293
detail::Map_nested_container_alias< Key_traits_tp, Mapped_tp > Base_t
Definition: aliases.h:292
Storage for nested sets, backed by a std::map.
Definition: map_nested_storage.h:66
Represents the subset of a Cartesian product "L x R" of two sets, using a map data structure that map...
Definition: nested_container.h:58
Non-throwing container that stores boundaries.
Definition: nonthrowing_boundary_container_adaptor.h:56
Boundary container using std::vector as backing storage.
Definition: aliases.h:249
Vector_boundary_container(Args_t &&...args) noexcept
Definition: aliases.h:256
Vector_boundary_container< Set_traits_tp > This_t
Definition: aliases.h:251
detail::Vector_boundary_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:250
Interval container using std::vector as backing storage.
Definition: aliases.h:277
Vector_interval_container(Args_t &&...args) noexcept
Definition: aliases.h:284
detail::Vector_interval_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:278
Vector_interval_container< Set_traits_tp > This_t
Definition: aliases.h:279
Container that stores boundaries.
Definition: boundary_container.h:65
void assign(Source_t &&source)
Definition: boundary_container.h:151
Throwing Boundary container using std::map as backing storage.
Definition: aliases.h:143
Map_boundary_container< Set_traits_tp > This_t
Definition: aliases.h:145
detail::Map_boundary_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:144
Map_boundary_container(Args_t &&...args) noexcept(noexcept(Base_t(std::forward< Args_t >(args)...)))
Definition: aliases.h:150
auto & operator=(Other_t &&other) noexcept(noexcept(this->assign(std::forward< Other_t >(other))))
Definition: aliases.h:155
Storage for boundary points, backed by a std::map.
Definition: map_boundary_storage.h:164
Throwing Interval container using std::map as backing storage.
Definition: aliases.h:187
detail::Map_interval_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:188
auto & operator=(Other_t &&other) noexcept(noexcept(this->assign(std::forward< Other_t >(other))))
Definition: aliases.h:199
Map_interval_container(Args_t &&...args) noexcept(noexcept(Base_t(std::forward< Args_t >(args)...)))
Definition: aliases.h:194
Map_interval_container< Set_traits_tp > This_t
Definition: aliases.h:189
Throwing Boundary container using std::vector as backing storage.
Definition: aliases.h:165
detail::Vector_boundary_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:166
Vector_boundary_container< Set_traits_tp > This_t
Definition: aliases.h:167
Vector_boundary_container(Args_t &&...args) noexcept(noexcept(Base_t(std::forward< Args_t >(args)...)))
Definition: aliases.h:172
auto & operator=(Other_t &&other) noexcept(noexcept(this->assign(std::forward< Other_t >(other))))
Definition: aliases.h:177
Throwing Interval container using std::vector as backing storage.
Definition: aliases.h:209
Vector_interval_container(Args_t &&...args) noexcept(noexcept(Base_t(std::forward< Args_t >(args)...)))
Definition: aliases.h:216
detail::Vector_interval_container_alias< Set_traits_tp > Base_t
Definition: aliases.h:210
auto & operator=(Other_t &&other) noexcept(noexcept(this->assign(std::forward< Other_t >(other))))
Definition: aliases.h:221
Vector_interval_container< Set_traits_tp > This_t
Definition: aliases.h:211
Definition: gtid_set.h:183
Map_template_t< typename Set_traits_t::Element_t, Mapped_t, typename Set_traits_t::Less_t, mysql::allocators::Allocator< std::pair< const typename Set_traits_t::Element_t, Mapped_t > > > Map_for_set_traits
Given a class template of the same shape as std::map (four class arguments for key,...
Definition: aliases.h:58
noexcept
The return type for any call_and_catch(f, args...) call where f(args...) returns Type.
Definition: call_and_catch.h:76
Set traits for Nested sets.
Definition: nested_set_traits.h:48