MySQL 9.6.0
Source Code Documentation
mysql::sets::Optional_view_source_set< Source_tp > Class Template Reference

Used to represent an optional source of a view, when that source is a set. More...

#include <optional_view_source_set.h>

Inheritance diagram for mysql::sets::Optional_view_source_set< Source_tp >:
[legend]

Public Member Functions

template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
 Optional_view_source_set (Args_t &&...args)
 Delegate construction to Optional_view_source. More...
 
 Optional_view_source_set (const Optional_view_source_set &)=default
 Default rule-of-5. More...
 
 Optional_view_source_set (Optional_view_source_set &&)=default
 
Optional_view_source_setoperator= (const Optional_view_source_set &)=default
 
Optional_view_source_setoperator= (Optional_view_source_set &&)=default
 
 ~Optional_view_source_set ()=default
 
template<class... Args_t>
auto find (Args_t &&...args) const
 If the source is present, invoke find on it. More...
 
template<class... Args_t>
auto lower_bound (Args_t &&...args) const
 If the source is present, invoke lower_bound on it. More...
 
template<class... Args_t>
auto upper_bound (Args_t &&...args) const
 If the source is present, invoke upper_bound on it. More...
 
- Public Member Functions inherited from mysql::ranges::Optional_view_source< Source_tp, owns_source_tp >
 Optional_view_source ()=default
 Construct an objec that does not hold a source. More...
 
 Optional_view_source (const Source_t &source)
 Construct from a const reference to the source. More...
 
 Optional_view_source (const Source_t *source)
 Construct from a const pointer to the source. More...
 
bool has_object () const
 Return true if this object holds a source. More...
 
const Raw_source_tget () const
 Return a copy of the stored object if it is owned; otherwise a reference to it. More...
 
const Raw_source_treference () const
 Return a reference to the stored object. More...
 
const Source_tpointer () const
 Return a pointer to the source if there is one, or nullptr otherwise. More...
 
const Source_toperator-> () const
 Arrow operator to access members of the source. More...
 
auto begin () const
 Return a valid begin iterator, even if !has_object(). More...
 
auto end () const
 Return a valid end iterator, even if !has_object(). More...
 

Private Types

using Base_t = mysql::ranges::Optional_view_source< Source_tp >
 
using This_t = Optional_view_source_set< Source_tp >
 

Additional Inherited Members

- Public Types inherited from mysql::ranges::Optional_view_source< Source_tp, owns_source_tp >
using Source_t = Source_tp
 
using Raw_source_t = Raw_view_source< Source_t, owns_source >
 Source_t if owns_source, otherwise Source_t &. More...
 
using Optional_source_t = std::conditional_t< owns_source, std::optional< Source_t >, const Source_t * >
 Internal representation of the source. More...
 
- Static Public Attributes inherited from mysql::ranges::Optional_view_source< Source_tp, owns_source_tp >
static constexpr bool owns_source = owns_source_tp
 True if this object owns a copy of its source; false if it holds a reference to its source. More...
 
- Static Protected Member Functions inherited from mysql::ranges::Optional_view_source< Source_tp, owns_source_tp >
static auto null_iterator ()
 

Detailed Description

template<Is_set Source_tp>
class mysql::sets::Optional_view_source_set< Source_tp >

Used to represent an optional source of a view, when that source is a set.

Provides the functions find, lower_bound, and upper_bound which work even if the optional source is absent, in which case they return the end iterator.

Member Typedef Documentation

◆ Base_t

template<Is_set Source_tp>
using mysql::sets::Optional_view_source_set< Source_tp >::Base_t = mysql::ranges::Optional_view_source<Source_tp>
private

◆ This_t

template<Is_set Source_tp>
using mysql::sets::Optional_view_source_set< Source_tp >::This_t = Optional_view_source_set<Source_tp>
private

Constructor & Destructor Documentation

◆ Optional_view_source_set() [1/3]

template<Is_set Source_tp>
template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
mysql::sets::Optional_view_source_set< Source_tp >::Optional_view_source_set ( Args_t &&...  args)
inlineexplicit

Delegate construction to Optional_view_source.

◆ Optional_view_source_set() [2/3]

template<Is_set Source_tp>
mysql::sets::Optional_view_source_set< Source_tp >::Optional_view_source_set ( const Optional_view_source_set< Source_tp > &  )
default

Default rule-of-5.

◆ Optional_view_source_set() [3/3]

template<Is_set Source_tp>
mysql::sets::Optional_view_source_set< Source_tp >::Optional_view_source_set ( Optional_view_source_set< Source_tp > &&  )
default

◆ ~Optional_view_source_set()

template<Is_set Source_tp>
mysql::sets::Optional_view_source_set< Source_tp >::~Optional_view_source_set ( )
default

Member Function Documentation

◆ find()

template<Is_set Source_tp>
template<class... Args_t>
auto mysql::sets::Optional_view_source_set< Source_tp >::find ( Args_t &&...  args) const
inline

If the source is present, invoke find on it.

Otherwise, return an end iterator.

◆ lower_bound()

template<Is_set Source_tp>
template<class... Args_t>
auto mysql::sets::Optional_view_source_set< Source_tp >::lower_bound ( Args_t &&...  args) const
inline

If the source is present, invoke lower_bound on it.

Otherwise, return an end iterator.

◆ operator=() [1/2]

template<Is_set Source_tp>
Optional_view_source_set & mysql::sets::Optional_view_source_set< Source_tp >::operator= ( const Optional_view_source_set< Source_tp > &  )
default

◆ operator=() [2/2]

template<Is_set Source_tp>
Optional_view_source_set & mysql::sets::Optional_view_source_set< Source_tp >::operator= ( Optional_view_source_set< Source_tp > &&  )
default

◆ upper_bound()

template<Is_set Source_tp>
template<class... Args_t>
auto mysql::sets::Optional_view_source_set< Source_tp >::upper_bound ( Args_t &&...  args) const
inline

If the source is present, invoke upper_bound on it.

Otherwise, return an end iterator.


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