MySQL 8.0.40
Source Code Documentation
stdx::base Namespace Reference

Classes

struct  assign_base
 
struct  assign_base< member_policy::copy >
 
struct  assign_base< member_policy::copy|member_policy::move >
 
struct  assign_base< member_policy::move >
 
struct  assign_base< member_policy::none >
 
struct  ctor_base
 
struct  ctor_base< member_policy::copy >
 
struct  ctor_base< member_policy::move >
 
struct  ctor_base< member_policy::move|member_policy::copy >
 
struct  ctor_base< member_policy::none >
 
struct  default_ctor_base
 
struct  default_ctor_base< false >
 
union  storage_t
 
union  storage_t< void, E >
 specialized storage for <void, E>. More...
 

Typedefs

template<class B >
using not_ = std::negation< B >
 
template<class... B>
using and_ = std::conjunction< B... >
 
template<class... B>
using or_ = std::disjunction< B... >
 
template<class T , class E >
using select_ctor_base = ctor_base<(and_< or_< std::is_void< T >, std::is_copy_constructible< T > >, std::is_copy_constructible< E > >::value ? member_policy::copy :member_policy::none)|(and_< or_< std::is_void< T >, std::is_move_constructible< T > >, std::is_move_constructible< E > >::value ? member_policy::move :member_policy::none)>
 
template<class T , class E >
using select_assign_base = assign_base<(and_< or_< std::is_void< T >, and_< std::is_copy_constructible< T >, std::is_copy_assignable< T > > >, and_< std::is_copy_constructible< E >, std::is_copy_assignable< E > > >::value ? member_policy::copy :member_policy::none)|(or_< std::is_void< T >, and_< std::is_move_constructible< T >, std::is_move_assignable< T > > >::value ? member_policy::move :member_policy::none)>
 

Enumerations

enum class  member_policy { none = 0 , copy = 1 << 1 , move = 1 << 2 }
 

Functions

constexpr member_policy operator| (member_policy x, member_policy y)
 
template<class Exp , class Func , typename value_type = typename std::decay_t<Exp>::value_type, std::enable_if_t< std::is_void_v< value_type > ? std::is_invocable_v< Func > :std::is_invocable_v< Func, value_type > > * = nullptr>
constexpr auto and_then_impl (Exp &&exp, Func &&func)
 
template<class Exp , class Func , typename error_type = typename std::decay_t<Exp>::error_type, std::enable_if_t< std::is_invocable_v< Func, error_type > > * = nullptr>
constexpr auto or_else_impl (Exp &&exp, Func &&func)
 

Typedef Documentation

◆ and_

template<class... B>
using stdx::base::and_ = typedef std::conjunction<B...>

◆ not_

template<class B >
using stdx::base::not_ = typedef std::negation<B>

◆ or_

template<class... B>
using stdx::base::or_ = typedef std::disjunction<B...>

◆ select_assign_base

template<class T , class E >
using stdx::base::select_assign_base = typedef assign_base< (and_< or_<std::is_void<T>, and_<std::is_copy_constructible<T>, std::is_copy_assignable<T> >>, and_<std::is_copy_constructible<E>, std::is_copy_assignable<E> >>::value ? member_policy::copy : member_policy::none) | (or_<std::is_void<T>, and_<std::is_move_constructible<T>, std::is_move_assignable<T> >>::value ? member_policy::move : member_policy::none)>

◆ select_ctor_base

template<class T , class E >
using stdx::base::select_ctor_base = typedef ctor_base<(and_<or_<std::is_void<T>, std::is_copy_constructible<T> >, std::is_copy_constructible<E> >::value ? member_policy::copy : member_policy::none) | (and_<or_<std::is_void<T>, std::is_move_constructible<T> >, std::is_move_constructible<E> >::value ? member_policy::move : member_policy::none)>

Enumeration Type Documentation

◆ member_policy

enum class stdx::base::member_policy
strong
Enumerator
none 
copy 
move 

Function Documentation

◆ and_then_impl()

template<class Exp , class Func , typename value_type = typename std::decay_t<Exp>::value_type, std::enable_if_t< std::is_void_v< value_type > ? std::is_invocable_v< Func > :std::is_invocable_v< Func, value_type > > * = nullptr>
constexpr auto stdx::base::and_then_impl ( Exp &&  exp,
Func &&  func 
)
constexpr

◆ operator|()

constexpr member_policy stdx::base::operator| ( member_policy  x,
member_policy  y 
)
constexpr

◆ or_else_impl()

template<class Exp , class Func , typename error_type = typename std::decay_t<Exp>::error_type, std::enable_if_t< std::is_invocable_v< Func, error_type > > * = nullptr>
constexpr auto stdx::base::or_else_impl ( Exp &&  exp,
Func &&  func 
)
constexpr