libstdc++
std::tuple< _Elements > Class Template Reference

#include <tuple>

Inherits _Tuple_impl< 0, _Elements... >.

Public Member Functions

template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr tuple (_UElements &&... __elements) noexcept(__nothrow_constructible< _UElements... >())
 
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr tuple (_UElements &&... __elements) noexcept(__nothrow_constructible< _UElements... >())
 
template<typename _Alloc , _ImplicitDefaultCtor< is_object< _Alloc >::value > = true>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a)
 
template<typename _Alloc , _ExplicitDefaultCtor< is_object< _Alloc >::value > = false>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a)
 
template<typename _Alloc , typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&... __elements)
 
template<typename _Alloc , typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&... __elements)
 
template<typename _Alloc , bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, const _Elements &... __elements)
 
template<typename _Alloc , bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, const _Elements &... __elements)
 
template<typename _Alloc >
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple &__in)
 
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
 
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
 
template<typename _Alloc >
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, tuple &&__in)
 
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
 
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
 
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr tuple (const _Elements &... __elements) noexcept(__nothrow_constructible< const _Elements &... >())
 
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr tuple (const _Elements &... __elements) noexcept(__nothrow_constructible< const _Elements &... >())
 
constexpr tuple (const tuple &)=default
 
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr tuple (const tuple< _UElements... > &__in) noexcept(__nothrow_constructible< const _UElements &... >())
 
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr tuple (const tuple< _UElements... > &__in) noexcept(__nothrow_constructible< const _UElements &... >())
 
constexpr tuple (tuple &&)=default
 
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr tuple (tuple< _UElements... > &&__in) noexcept(__nothrow_constructible< _UElements... >())
 
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr tuple (tuple< _UElements... > &&__in) noexcept(__nothrow_constructible< _UElements... >())
 
constexpr tupleoperator= (__conditional_t< __assignable< _Elements... >(), tuple &&, __nonesuch && > __in) noexcept(__nothrow_assignable< _Elements... >())
 
constexpr tupleoperator= (__conditional_t< __assignable< const _Elements &... >(), const tuple &, const __nonesuch & > __in) noexcept(__nothrow_assignable< const _Elements &... >())
 
template<typename... _UElements>
constexpr __enable_if_t< __assignable< const _UElements &... >(), tuple & > operator= (const tuple< _UElements... > &__in) noexcept(__nothrow_assignable< const _UElements &... >())
 
template<typename... _UElements>
constexpr __enable_if_t< __assignable< _UElements... >(), tuple & > operator= (tuple< _UElements... > &&__in) noexcept(__nothrow_assignable< _UElements... >())
 
constexpr void swap (tuple &__in) noexcept(__and_< __is_nothrow_swappable< _Elements >... >::value)
 

Detailed Description

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

Primary class template, tuple.

Definition at line 831 of file tuple.

Constructor & Destructor Documentation

◆ tuple() [1/22]

template<typename... _Elements>
template<typename _Dummy = void, _ImplicitDefaultCtor< is_void< _Dummy >::value > = true>
constexpr std::tuple< _Elements >::tuple ( )
inlineconstexprnoexcept

Definition at line 1455 of file tuple.

◆ tuple() [2/22]

template<typename... _Elements>
template<typename _Dummy = void, _ExplicitDefaultCtor< is_void< _Dummy >::value > = false>
constexpr std::tuple< _Elements >::tuple ( )
inlineexplicitconstexprnoexcept

Definition at line 1462 of file tuple.

◆ tuple() [3/22]

template<typename... _Elements>
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr std::tuple< _Elements >::tuple ( const _Elements &...  __elements)
inlineconstexprnoexcept

Definition at line 1469 of file tuple.

◆ tuple() [4/22]

template<typename... _Elements>
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr std::tuple< _Elements >::tuple ( const _Elements &...  __elements)
inlineexplicitconstexprnoexcept

Definition at line 1476 of file tuple.

◆ tuple() [5/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr std::tuple< _Elements >::tuple ( _UElements &&...  __elements)
inlineconstexprnoexcept

Definition at line 1484 of file tuple.

◆ tuple() [6/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr std::tuple< _Elements >::tuple ( _UElements &&...  __elements)
inlineexplicitconstexprnoexcept

Definition at line 1493 of file tuple.

◆ tuple() [7/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr std::tuple< _Elements >::tuple ( const tuple< _UElements... > &  __in)
inlineconstexprnoexcept

Definition at line 1507 of file tuple.

◆ tuple() [8/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr std::tuple< _Elements >::tuple ( const tuple< _UElements... > &  __in)
inlineexplicitconstexprnoexcept

Definition at line 1517 of file tuple.

◆ tuple() [9/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr std::tuple< _Elements >::tuple ( tuple< _UElements... > &&  __in)
inlineconstexprnoexcept

Definition at line 1527 of file tuple.

◆ tuple() [10/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr std::tuple< _Elements >::tuple ( tuple< _UElements... > &&  __in)
inlineexplicitconstexprnoexcept

Definition at line 1537 of file tuple.

◆ tuple() [11/22]

template<typename... _Elements>
template<typename _Alloc , _ImplicitDefaultCtor< is_object< _Alloc >::value > = true>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a 
)
inlineconstexpr

Definition at line 1547 of file tuple.

◆ tuple() [12/22]

template<typename... _Elements>
template<typename _Alloc , _ExplicitDefaultCtor< is_object< _Alloc >::value > = false>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a 
)
inlineexplicitconstexpr

Definition at line 1554 of file tuple.

◆ tuple() [13/22]

template<typename... _Elements>
template<typename _Alloc , bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
const _Elements &...  __elements 
)
inlineconstexpr

Definition at line 1560 of file tuple.

◆ tuple() [14/22]

template<typename... _Elements>
template<typename _Alloc , bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
const _Elements &...  __elements 
)
inlineexplicitconstexpr

Definition at line 1568 of file tuple.

◆ tuple() [15/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
_UElements &&...  __elements 
)
inlineconstexpr

Definition at line 1576 of file tuple.

◆ tuple() [16/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
_UElements &&...  __elements 
)
inlineexplicitconstexpr

Definition at line 1586 of file tuple.

◆ tuple() [17/22]

template<typename... _Elements>
template<typename _Alloc >
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
const tuple< _Elements > &  __in 
)
inlineconstexpr

Definition at line 1593 of file tuple.

◆ tuple() [18/22]

template<typename... _Elements>
template<typename _Alloc >
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
tuple< _Elements > &&  __in 
)
inlineconstexpr

Definition at line 1598 of file tuple.

◆ tuple() [19/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
const tuple< _UElements... > &  __in 
)
inlineconstexpr

Definition at line 1606 of file tuple.

◆ tuple() [20/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
const tuple< _UElements... > &  __in 
)
inlineexplicitconstexpr

Definition at line 1618 of file tuple.

◆ tuple() [21/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
tuple< _UElements... > &&  __in 
)
inlineconstexpr

Definition at line 1629 of file tuple.

◆ tuple() [22/22]

template<typename... _Elements>
template<typename _Alloc , typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr std::tuple< _Elements >::tuple ( allocator_arg_t  __tag,
const _Alloc &  __a,
tuple< _UElements... > &&  __in 
)
inlineexplicitconstexpr

Definition at line 1641 of file tuple.

Member Function Documentation

◆ operator=() [1/4]

template<typename... _Elements>
constexpr tuple & std::tuple< _Elements >::operator= ( __conditional_t< __assignable< _Elements... >(), tuple< _Elements > &&, __nonesuch && >  __in)
inlineconstexprnoexcept

Definition at line 1913 of file tuple.

◆ operator=() [2/4]

template<typename... _Elements>
constexpr tuple & std::tuple< _Elements >::operator= ( __conditional_t< __assignable< const _Elements &... >(), const tuple< _Elements > &, const __nonesuch & >  __in)
inlineconstexprnoexcept

Definition at line 1902 of file tuple.

◆ operator=() [3/4]

template<typename... _Elements>
template<typename... _UElements>
constexpr __enable_if_t< __assignable< const _UElements &... >(), tuple & > std::tuple< _Elements >::operator= ( const tuple< _UElements... > &  __in)
inlineconstexprnoexcept

Definition at line 1925 of file tuple.

◆ operator=() [4/4]

template<typename... _Elements>
template<typename... _UElements>
constexpr __enable_if_t< __assignable< _UElements... >(), tuple & > std::tuple< _Elements >::operator= ( tuple< _UElements... > &&  __in)
inlineconstexprnoexcept

Definition at line 1935 of file tuple.

◆ swap()

template<typename... _Elements>
constexpr void std::tuple< _Elements >::swap ( tuple< _Elements > &  __in)
inlineconstexprnoexcept

Definition at line 1946 of file tuple.


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