libstdc++
std::tuple< _Elements > Class Template Reference
Inheritance diagram for std::tuple< _Elements >:
[legend]

Public Types

template<typename _Dummy >
using _TCC = _TC< is_same< _Dummy, void >::value, _Elements... >
 
template<typename... _UElements>
using _TMC = _TC<(sizeof...(_Elements)==sizeof...(_UElements)), _Elements... >
 
template<typename _Dummy >
using _TNTC = _TC< is_same< _Dummy, void >::value &&sizeof...(_Elements)==1, _Elements... >
 

Public Member Functions

template<typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template _ConstructibleTuple< _Elements... >() &&_TCC< _Dummy >::template _ImplicitlyConvertibleTuple< _Elements... >() &&(sizeof...(_Elements) > = 1>
constexpr tuple (const _Elements &...__elements)
 
template<typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template _ConstructibleTuple< _Elements... >() &&!_TCC< _Dummy >::template _ImplicitlyConvertibleTuple< _Elements... >() &&(sizeof...(_Elements) > = 1>
constexpr tuple (const _Elements &...__elements)
 
template<typename... _UElements, typename enable_if< _TC< sizeof...(_UElements)==1, _Elements... >::template _NotSameTuple< _UElements... >()&&_TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >() &&(sizeof...(_Elements) > = 1>
constexpr tuple (_UElements &&...__elements)
 
template<typename... _UElements, typename enable_if< _TC< sizeof...(_UElements)==1, _Elements... >::template _NotSameTuple< _UElements... >()&&_TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >() &&(sizeof...(_Elements) > = 1>
constexpr tuple (_UElements &&...__elements)
 
constexpr tuple (const tuple &)=default
 
constexpr tuple (tuple &&)=default
 
template<typename... _UElements, typename _Dummy = void, typename enable_if< _TMC< _UElements... >::template _ConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyConvertibleTuple< _UElements... >() &&_TNTC< _Dummy >::template _NonNestedTuple< const tuple< _UElements... > & >(), bool >::type = true>
constexpr tuple (const tuple< _UElements... > &__in)
 
template<typename... _UElements, typename _Dummy = void, typename enable_if< _TMC< _UElements... >::template _ConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyConvertibleTuple< _UElements... >() &&_TNTC< _Dummy >::template _NonNestedTuple< const tuple< _UElements... > & >(), bool >::type = false>
constexpr tuple (const tuple< _UElements... > &__in)
 
template<typename... _UElements, typename _Dummy = void, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >() &&_TNTC< _Dummy >::template _NonNestedTuple< tuple< _UElements... > && >(), bool >::type = true>
constexpr tuple (tuple< _UElements... > &&__in)
 
template<typename... _UElements, typename _Dummy = void, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >() &&_TNTC< _Dummy >::template _NonNestedTuple< tuple< _UElements... > && >(), bool >::type = false>
constexpr tuple (tuple< _UElements... > &&__in)
 
template<typename _Alloc >
 tuple (allocator_arg_t __tag, const _Alloc &__a)
 
template<typename _Alloc , typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template _ConstructibleTuple< _Elements... >() &&_TCC< _Dummy >::template _ImplicitlyConvertibleTuple< _Elements... >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const _Elements &...__elements)
 
template<typename _Alloc , typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template _ConstructibleTuple< _Elements... >() &&!_TCC< _Dummy >::template _ImplicitlyConvertibleTuple< _Elements... >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const _Elements &...__elements)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&...__elements)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&...__elements)
 
template<typename _Alloc >
 tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple &__in)
 
template<typename _Alloc >
 tuple (allocator_arg_t __tag, const _Alloc &__a, tuple &&__in)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _ConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyConvertibleTuple< _UElements... >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _ConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyConvertibleTuple< _UElements... >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
 
template<typename _Alloc , typename... _UElements, typename enable_if< _TMC< _UElements... >::template _MoveConstructibleTuple< _UElements... >() &&!_TMC< _UElements... >::template _ImplicitlyMoveConvertibleTuple< _UElements... >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
 
tupleoperator= (const tuple &__in)
 
tupleoperator= (tuple &&__in) noexcept(is_nothrow_move_assignable< _Inherited >::value)
 
template<typename... _UElements, typename = typename enable_if<sizeof...(_UElements) == sizeof...(_Elements)>::type>
tupleoperator= (const tuple< _UElements... > &__in)
 
template<typename... _UElements, typename = typename enable_if<sizeof...(_UElements) == sizeof...(_Elements)>::type>
tupleoperator= (tuple< _UElements... > &&__in)
 
void swap (tuple &__in) noexcept(noexcept(__in._M_swap(__in)))
 

Detailed Description

template<typename... _Elements>
class std::tuple< _Elements >

Primary class template, tuple.

Definition at line 461 of file tuple.


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