indigoX
triple< _T1, _T2, _T3 > Struct Template Reference

#include <indigox/utils/triple.hpp>

Public Types

typedef _T1 first_type
 
typedef _T2 second_type
 
typedef _T3 third_type
 

Public Member Functions

 triple (triple const &t)
 
 triple (triple &&t)
 
constexpr triple ()
 
constexpr triple (_T1 const &__t1, _T2 const &__t2, _T3 const &__t3)
 
template<class _U1 , class _U2 , class _U3 >
constexpr triple (_U1 &&__u1, _U2 &&__u2, _U3 &&__u3)
 
template<class _U1 , class _U2 , class _U3 >
constexpr triple (triple< _U1, _U2, _U3 > const &__p)
 
template<class _U1 , class _U2 , class _U3 >
constexpr triple (triple< _U1, _U2, _U3 > &&__p)
 
 ~triple ()
 
tripleoperator= (typename std::conditional< std::is_copy_assignable< first_type >::value &&std::is_copy_assignable< second_type >::value &&std::is_copy_assignable< third_type >::value, triple, stdx::typeless >::type const &__p) noexcept(std::is_nothrow_copy_assignable< first_type >::value &&std::is_nothrow_copy_assignable< second_type >::value &&std::is_nothrow_copy_assignable< third_type >::value)
 
tripleoperator= (typename std::conditional< std::is_move_assignable< first_type >::value &&std::is_move_assignable< second_type >::value &&std::is_move_assignable< third_type >::value, triple, stdx::typeless >::type &&__p) noexcept(std::is_nothrow_move_assignable< first_type >::value &&std::is_nothrow_move_assignable< second_type >::value &&std::is_nothrow_move_assignable< third_type >::value)
 
template<typename Archive >
void serialise (Archive &archive, const uint32_t)
 
void swap (triple &__p) noexcept(std::is_nothrow_swappable< first_type >::value &&std::is_nothrow_swappable< second_type >::value &&std::is_nothrow_swappable< third_type >::value)
 

Public Attributes

union {
   first_type   A
 
   first_type   first
 
}; 
 
union {
   second_type   B
 
   second_type   second
 
}; 
 
union {
   third_type   C
 
   third_type   third
 
}; 
 

Member Typedef Documentation

◆ first_type

typedef _T1 first_type

◆ second_type

typedef _T2 second_type

◆ third_type

typedef _T3 third_type

Constructor & Destructor Documentation

◆ triple() [1/7]

triple ( triple< _T1, _T2, _T3 > const &  t)
inline

◆ triple() [2/7]

triple ( triple< _T1, _T2, _T3 > &&  t)
inline

◆ ~triple()

~triple ( )
inline

◆ triple() [3/7]

constexpr triple ( )
inline

◆ triple() [4/7]

constexpr triple ( _T1 const &  __t1,
_T2 const &  __t2,
_T3 const &  __t3 
)
inline

◆ triple() [5/7]

constexpr triple ( _U1 &&  __u1,
_U2 &&  __u2,
_U3 &&  __u3 
)
inline

◆ triple() [6/7]

constexpr triple ( triple< _U1, _U2, _U3 > const &  __p)
inline

◆ triple() [7/7]

constexpr triple ( triple< _U1, _U2, _U3 > &&  __p)
inline

Member Function Documentation

◆ operator=() [1/2]

triple& operator= ( typename std::conditional< std::is_copy_assignable< first_type >::value &&std::is_copy_assignable< second_type >::value &&std::is_copy_assignable< third_type >::value, triple< _T1, _T2, _T3 >, stdx::typeless >::type const &  __p)
inlinenoexcept

◆ operator=() [2/2]

triple& operator= ( typename std::conditional< std::is_move_assignable< first_type >::value &&std::is_move_assignable< second_type >::value &&std::is_move_assignable< third_type >::value, triple< _T1, _T2, _T3 >, stdx::typeless >::type &&  __p)
inlinenoexcept

◆ serialise()

void serialise ( Archive &  archive,
const uint32_t   
)
inline

◆ swap()

void swap ( triple< _T1, _T2, _T3 > &  __p)
inlinenoexcept

Member Data Documentation

◆ @3

union { ... }

◆ @5

union { ... }

◆ @7

union { ... }

◆ A

◆ B

◆ C

◆ first

◆ second

◆ third


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