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 _TMCT = _TC<(sizeof...(_Elements)==sizeof...(_UElements))&&!is_same< tuple< _Elements...>, tuple< _UElements...>>::value, _Elements...>
 
template<typename _Dummy >
using _TNTC = _TC< is_same< _Dummy, void >::value &&sizeof...(_Elements)==1, _Elements...>
 

Public Member Functions

constexpr tuple (tuple &&)=default
 
template<typename... _UElements, typename _Dummy = void, typename enable_if< _TMCT< _UElements...>::template_ConstructibleTuple< _UElements...>()&&_TMCT< _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< _TMCT< _UElements...>::template_ConstructibleTuple< _UElements...>()&&!_TMCT< _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< _TMCT< _UElements...>::template_MoveConstructibleTuple< _UElements...>()&&_TMCT< _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< _TMCT< _UElements...>::template_MoveConstructibleTuple< _UElements...>()&&!_TMCT< _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 _Dummy = void, typename... _UElements, typename enable_if< _TMCT< _UElements...>::template_ConstructibleTuple< _UElements...>()&&_TMCT< _UElements...>::template_ImplicitlyConvertibleTuple< _UElements...>()&&_TNTC< _Dummy >::template_NonNestedTuple< tuple< _UElements...> && >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements...> &__in)
 
template<typename _Alloc , typename _Dummy = void, typename... _UElements, typename enable_if< _TMCT< _UElements...>::template_ConstructibleTuple< _UElements...>()&&!_TMCT< _UElements...>::template_ImplicitlyConvertibleTuple< _UElements...>()&&_TNTC< _Dummy >::template_NonNestedTuple< tuple< _UElements...> && >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements...> &__in)
 
template<typename _Alloc , typename _Dummy = void, typename... _UElements, typename enable_if< _TMCT< _UElements...>::template_MoveConstructibleTuple< _UElements...>()&&_TMCT< _UElements...>::template_ImplicitlyMoveConvertibleTuple< _UElements...>()&&_TNTC< _Dummy >::template_NonNestedTuple< tuple< _UElements...> && >(), bool >::type = true>
 tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements...> &&__in)
 
template<typename _Alloc , typename _Dummy = void, typename... _UElements, typename enable_if< _TMCT< _UElements...>::template_MoveConstructibleTuple< _UElements...>()&&!_TMCT< _UElements...>::template_ImplicitlyMoveConvertibleTuple< _UElements...>()&&_TNTC< _Dummy >::template_NonNestedTuple< tuple< _UElements...> && >(), bool >::type = false>
 tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements...> &&__in)
 
void noexcept (noexcept(__in._M_swap(__in)))
 
tupleoperator= (const tuple &__in)
 
tupleoperator= (tuple &&__in) noexcept(is_nothrow_move_assignable< _Inherited >::value)
 
template<typename... _UElements>
enable_if< sizeof...(_UElements)==sizeof...(_Elements),
tuple & >::type 
operator= (const tuple< _UElements...> &__in)
 
template<typename... _UElements>
enable_if< sizeof...(_UElements)==sizeof...(_Elements),
tuple & >::type 
operator= (tuple< _UElements...> &&__in)
 

Public Attributes

template<typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template_ConstructibleTuple< _Elements...>()&&_TCC< _Dummy >::template_ImplicitlyConvertibleTuple< _Elements...>()&&(sizeof...(_Elements) > = 1>
 _Elements
 
template<typename _Dummy = void, typename enable_if< _TCC< _Dummy >::template_ConstructibleTuple< _Elements...>()&&_TCC< _Dummy >::template_ImplicitlyConvertibleTuple< _Elements...>()&&(sizeof...(_Elements) > = 1>
enable_if< _TCC< _Dummy >
::template_ConstructibleTuple
< _Elements...>)&&!_TCC
< _Dummy >
::template_ImplicitlyConvertibleTuple
< _Elements...>)&&(sizeof...(_Elements) >
=1),bool >::type 
 
template<typename... _UElements, typename enable_if< _TMC< _UElements...>::template_MoveConstructibleTuple< _UElements...>()&&_TMC< _UElements...>::template_ImplicitlyMoveConvertibleTuple< _UElements...>()&&(sizeof...(_Elements) > = 1>
enable_if< _TMC< _UElements...>
::template_MoveConstructibleTuple
< _UElements...>)&&!_TMC
< _UElements...>
::template_ImplicitlyMoveConvertibleTuple
< _UElements...>)&&(sizeof...(_Elements) >
=1),bool >::type 
 

Detailed Description

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

Primary class template, tuple.

Definition at line 53 of file tuple.


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