MySQL 9.6.0
Source Code Documentation
mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp > Class Template Reference

#include <basic_set_container_wrapper.h>

Inheritance diagram for mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >:
[legend]

Public Member Functions

template<class... Args_t>
 Basic_set_container_wrapper (Args_t &&...args)
 
template<class Source_t >
requires Can_donate_set<decltype(std::declval<Source_t &&>().wrapped()), Wrapped_tp>
void assign (Source_t &&source)
 Enable move-assign from any Basic_set_container_wrapper for a compatible set type (not necessarily for a derived class). More...
 
template<std::input_iterator First_iterator_t, std::sentinel_for< First_iterator_t > Sentinel_t>
requires requires(Wrapped_t w, First_iterator_t f, Sentinel_t s) { w.assign(f, s); }
auto assign (const First_iterator_t &first, const Sentinel_t &last) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Wrapped_t >().assign(first, last)))
 Assign a range defined by the two iterators to the wrapped object. More...
 
template<class Other_t >
auto assign (const Other_t &other) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Self_t >().assign(other.begin(), other.end())))
 Copy-assign the other object to the wrapped object. More...
 
void assign (Self_t &&other) noexcept
 Move-assign the other object to the wrapped object. More...
 
- Public Member Functions inherited from mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, mysql::utils::Shall_catch::no >
 Basic_container_wrapper (Args_t &&...args) noexcept(noexcept(Wrapped_t(std::forward< Args_t >(args)...)))
 Constructor that delegates all parameters to the constructor of the wrapped class. More...
 
auto assign (const First_iterator_t &first, const Sentinel_t &last) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Wrapped_t >().assign(first, last)))
 Assign a range defined by the two iterators to the wrapped object. More...
 
auto assign (const Other_t &other) noexcept(shall_catch==mysql::utils::Shall_catch::yes||noexcept(std::declval< Self_t >().assign(other.begin(), other.end())))
 Copy-assign the other object to the wrapped object. More...
 
void assign (Self_t &&other) noexcept
 Move-assign the other object to the wrapped object. More...
 
void clear () noexcept
 Clear the wrapped object. More...
 
auto get_memory_resource () const noexcept
 Return the memory resource used by the wrapped object. More...
 
auto get_allocator () const noexcept
 Return the allocator used by the wrapped object. More...
 
auto begin () noexcept
 
auto begin () const noexcept
 
auto end () noexcept
 
auto end () const noexcept
 
auto empty () const noexcept
 
auto size () const noexcept
 
- 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 = mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >
 
using This_t = Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >
 

Additional Inherited Members

- Public Types inherited from mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, mysql::utils::Shall_catch::no >
using Wrapped_t = Wrapped_tp
 
- Protected Member Functions inherited from mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, mysql::utils::Shall_catch::no >
auto & wrapped () &noexcept
 
const auto & wrapped () const &noexcept
 
auto && wrapped () &&noexcept
 

Member Typedef Documentation

◆ Base_t

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
using mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >::Base_t = mysql::containers::Basic_container_wrapper<Self_tp, Wrapped_tp, shall_catch_tp>
private

◆ This_t

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
using mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >::This_t = Basic_set_container_wrapper<Self_tp, Wrapped_tp, shall_catch_tp>
private

Constructor & Destructor Documentation

◆ Basic_set_container_wrapper()

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
template<class... Args_t>
mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >::Basic_set_container_wrapper ( Args_t &&...  args)
inlineexplicit

Member Function Documentation

◆ assign() [1/4]

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
template<std::input_iterator First_iterator_t, std::sentinel_for< First_iterator_t > Sentinel_t>
requires requires(Wrapped_t w, First_iterator_t f, Sentinel_t s) { w.assign(f, s); }
auto mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, shall_catch >::assign ( const First_iterator_t &  first,
const Sentinel_t &  last 
)
inlinenoexcept

Assign a range defined by the two iterators to the wrapped object.

This is enabled provided that the wrapped class defines an assign member taking two iterators.

◆ assign() [2/4]

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
template<class Other_t >
auto mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, shall_catch >::assign ( const Other_t &  other)
inlinenoexcept

Copy-assign the other object to the wrapped object.

This is enabled provided that the subclass defines an assign member taking two iterators.

◆ assign() [3/4]

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
void mysql::containers::Basic_container_wrapper< Self_tp, Wrapped_tp, shall_catch >::assign ( Self_t &&  other)
inlinenoexcept

Move-assign the other object to the wrapped object.

This is enabled provided that the wrapped class is nothrow-move-assignable.

◆ assign() [4/4]

template<class Self_tp , class Wrapped_tp , mysql::utils::Shall_catch shall_catch_tp = mysql::utils::Shall_catch::no>
template<class Source_t >
requires Can_donate_set<decltype(std::declval<Source_t &&>().wrapped()), Wrapped_tp>
void mysql::sets::Basic_set_container_wrapper< Self_tp, Wrapped_tp, shall_catch_tp >::assign ( Source_t &&  source)
inline

Enable move-assign from any Basic_set_container_wrapper for a compatible set type (not necessarily for a derived class).


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