MySQL 9.6.0
Source Code Documentation
boundary_set_meta.h File Reference

Experimental API header. More...

Go to the source code of this file.

Classes

struct  mysql::sets::detail::Storage_or_void_helper< Container_t >
 Helper to define Storage_or_void. More...
 
struct  mysql::sets::detail::Storage_or_void_helper< Container_t >
 
struct  mysql::sets::Enable_donate_set_elements< Source_t, Target_t >
 Declare that move-semantics is supported for element operations on Boundary Storage types, whenever full-set-copy is enabled and the function steal_and_insert is defined. More...
 

Namespaces

namespace  mysql
 
namespace  mysql::sets
 
namespace  mysql::sets::detail
 

Concepts

concept  mysql::sets::Is_boundary_iterator
 True if Test is a boundary point iterator, i.e.
 
concept  mysql::sets::Is_boundary_iterator_over_type
 True if Test is a boundary point iterator over values of type Value_t.
 
concept  mysql::sets::Is_bidirectional_boundary_iterator
 True if Test is a boundary point iterator and a bidirectional iterator.
 
concept  mysql::sets::Is_random_access_boundary_iterator
 True if Test is a boundary point iterator and a random access iterator.
 
concept  mysql::sets::Is_contiguous_boundary_iterator
 True if Test is a boundary point iterator and a contiguous iterator.
 
concept  mysql::sets::detail::Is_collection_with_upper_lower_bound_helper
 
concept  mysql::sets::detail::Is_boundary_set_helper
 True if Test is an interval set with Element_t as its element type, assuming that Iterator_t is its iterator type and Const_iterator_t its const iterator type.
 
concept  mysql::sets::Is_boundary_set
 True if Test is an interval set, i.e., provides a view over intervals sorted by their endpoints, where each interval is nonempty, disjoint from other intervals, and even does not share endpoint with adjacent intervals.
 
concept  mysql::sets::Is_boundary_set_over_traits
 True if Test is an interval set over the given Set traits.
 
concept  mysql::sets::Is_boundary_set_ref
 True if Test is a reference to a boundary set.
 
concept  mysql::sets::Is_boundary_set_ref_over_traits
 True if Test is a reference to a boundary set.
 
concept  mysql::sets::Is_boundary_set_over_traits_unqualified
 
concept  mysql::sets::detail::Is_readable_boundary_storage_helper
 True if Test satisfiesIs_readable_boundary_storagewithElement_tas its element type, assuming thatIterator_tandConst_iterator_t` are its iterator/const iterator types.
 
concept  mysql::sets::detail::Is_boundary_storage_helper
 True if Test satisfiesIs_boundary_storagewithElement_tas its element type, assuming thatIterator_tandConst_iterator_t` are its iterator/const iterator types.
 
concept  mysql::sets::Is_readable_boundary_storage
 True if Test is a readable boundary storage, i.e., an object that can be used as the back-end storage for a boundary container, without the requirement to have altering operations.
 
concept  mysql::sets::Is_readable_boundary_storage_over_traits
 True if Test is a boundary storage over the given Set traits.
 
concept  mysql::sets::Is_boundary_storage
 True if Test is a readable boundary storage, i.e., an object that can be used as the back-end storage for a boundary container.
 
concept  mysql::sets::Is_boundary_storage_over_traits
 True if Test is a boundary storage over the given Set traits.
 
concept  mysql::sets::detail::Is_boundary_or_interval_container_helper
 Helper to implement Is_boundary_container and Is_interval_container.
 
concept  mysql::sets::Is_boundary_container
 True if Test is a Boundary container.
 
concept  mysql::sets::Is_boundary_container_ref
 True if Test is a reference to a Boundary_container.
 
concept  mysql::sets::detail::Shall_enable_donate_set_elements_for_boundary_storage
 Helper concept to define the condition when Enable_donate_set_elements shall be defined for Boundary Storage types.
 
concept  mysql::sets::detail::Shall_enable_donate_set_elements_for_boundary_container
 Helper concept to define the condition when Enable_donate_set_elements shall be defined for Boundary Container types.
 

Typedefs

template<class Container_t >
using mysql::sets::Storage_or_void = detail::Storage_or_void_helper< Container_t >::Type
 Type alias for Container_t::Storage_t if that exists, or void otherwise. More...
 

Detailed Description

Experimental API header.

This file defines the category tag class and the type traits (concepts) related to boundary sets.

The main traits are the following:

  • Is_boundary_iterator<T>: true if T is a boundary iterator (essentially, an iterator with an is_endpoint member).
  • Is_boundary_set<T>: true if T is a boundary set: essentially has the members defined by std::view_interface, and in addition the special upper_bound/lower_bound members, and the iterators satisfy Is_boundary_iterator.
  • Is_boundary_storage<T>: true if T is a boundary storage, i.e. satisfies the requirements for the backing storage of a boundary container. This essentially needs insert, delete, update_point, upper_bound, and lower_bound members.
  • Is_boundary_container<T>: true if T is a boundary container: this is a boundary set with additional members assign, clear, insert, remove, inplace_union, inplace_subtract, inplace_intersect.

In addition, many of these have variants which require particular Set traits or element types.