plugify 1.2.6
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
plg::detail::union_node< IsLeaf, A, B > Struct Template Reference

Public Member Functions

template<std::size_t Index, class... Args>
requires (node_trait<IsLeaf>::template ctor_branch<Index, A> == 1)
constexpr union_node (in_place_index_t< Index >, Args &&... args)
 
template<std::size_t Index, class... Args>
requires (node_trait<IsLeaf>::template ctor_branch<Index, A> == 2)
constexpr union_node (in_place_index_t< Index >, Args &&... args)
 
template<class... Args>
requires (IsLeaf)
constexpr union_node (in_place_index_t< 0 >, Args &&... args)
 
template<class... Args>
requires (IsLeaf)
constexpr union_node (in_place_index_t< 1 >, Args &&... args)
 
constexpr union_node (dummy_type)
 
template<union_index_t Index>
constexpr autoget ()
 
template<union_index_t Index>
constexpr const autoget () const
 
constexpr union_node (const union_node &)=default
 
constexpr union_node (const union_node &)
 
constexpr union_node (union_node &&) noexcept=default
 
constexpr union_node (union_node &&) noexcept
 
constexpr union_nodeoperator= (const union_node &)=default
 
constexpr union_nodeoperator= (const union_node &)
 
constexpr union_nodeoperator= (union_node &&) noexcept=default
 
constexpr union_nodeoperator= (union_node &&) noexcept
 

Public Attributes

union { 
 
   A   a 
 
   B   b 
 
};  
 

Static Public Attributes

static constexpr auto elem_size = node_trait<IsLeaf>::template elem_size<A, B>
 

Detailed Description

template<bool IsLeaf, class A, class B>
struct plg::detail::union_node< IsLeaf, A, B >

Definition at line 207 of file variant.hpp.

Constructor & Destructor Documentation

◆ union_node() [1/7]

template<bool IsLeaf, class A , class B >
template<std::size_t Index, class... Args>
requires (node_trait<IsLeaf>::template ctor_branch<Index, A> == 1)
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( in_place_index_t< Index ,
Args &&...  args 
)
inlineexplicitconstexpr

Definition at line 219 of file variant.hpp.

◆ union_node() [2/7]

template<bool IsLeaf, class A , class B >
template<std::size_t Index, class... Args>
requires (node_trait<IsLeaf>::template ctor_branch<Index, A> == 2)
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( in_place_index_t< Index ,
Args &&...  args 
)
inlineexplicitconstexpr

Definition at line 225 of file variant.hpp.

◆ union_node() [3/7]

template<bool IsLeaf, class A , class B >
template<class... Args>
requires (IsLeaf)
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( in_place_index_t< 0 >  ,
Args &&...  args 
)
inlineexplicitconstexpr

Definition at line 231 of file variant.hpp.

◆ union_node() [4/7]

template<bool IsLeaf, class A , class B >
template<class... Args>
requires (IsLeaf)
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( in_place_index_t< 1 >  ,
Args &&...  args 
)
inlineexplicitconstexpr

Definition at line 237 of file variant.hpp.

◆ union_node() [5/7]

template<bool IsLeaf, class A , class B >
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( dummy_type  )
inlineexplicitconstexpr

Definition at line 241 of file variant.hpp.

◆ union_node() [6/7]

template<bool IsLeaf, class A , class B >
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( const union_node< IsLeaf, A, B > &  )
inlineconstexpr

Definition at line 266 of file variant.hpp.

◆ union_node() [7/7]

template<bool IsLeaf, class A , class B >
constexpr plg::detail::union_node< IsLeaf, A, B >::union_node ( union_node< IsLeaf, A, B > &&  )
inlineconstexprnoexcept

Definition at line 266 of file variant.hpp.

◆ ~union_node()

template<bool IsLeaf, class A , class B >
constexpr plg::detail::union_node< IsLeaf, A, B >::~union_node ( )
inlineconstexpr

Definition at line 266 of file variant.hpp.

Member Function Documentation

◆ get() [1/2]

template<bool IsLeaf, class A , class B >
template<union_index_t Index>
constexpr auto & plg::detail::union_node< IsLeaf, A, B >::get ( )
inlineconstexpr

Definition at line 247 of file variant.hpp.

◆ get() [2/2]

template<bool IsLeaf, class A , class B >
template<union_index_t Index>
constexpr const auto & plg::detail::union_node< IsLeaf, A, B >::get ( ) const
inlineconstexpr

Definition at line 262 of file variant.hpp.

◆ operator=() [1/2]

template<bool IsLeaf, class A , class B >
constexpr union_node & plg::detail::union_node< IsLeaf, A, B >::operator= ( const union_node< IsLeaf, A, B > &  )
inlineconstexpr

Definition at line 266 of file variant.hpp.

◆ operator=() [2/2]

template<bool IsLeaf, class A , class B >
constexpr union_node & plg::detail::union_node< IsLeaf, A, B >::operator= ( union_node< IsLeaf, A, B > &&  )
inlineconstexprnoexcept

Definition at line 266 of file variant.hpp.

Member Data Documentation

◆ a

template<bool IsLeaf, class A , class B >
A plg::detail::union_node< IsLeaf, A, B >::a

Definition at line 209 of file variant.hpp.

◆ b

template<bool IsLeaf, class A , class B >
B plg::detail::union_node< IsLeaf, A, B >::b

Definition at line 210 of file variant.hpp.

◆ elem_size

template<bool IsLeaf, class A , class B >
constexpr auto plg::detail::union_node< IsLeaf, A, B >::elem_size = node_trait<IsLeaf>::template elem_size<A, B>
staticconstexpr

Definition at line 213 of file variant.hpp.


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