std::_Tuple_impl< _Idx, _Head, _Tail... > Struct Template Reference
Utilities
Inheritance diagram for std::_Tuple_impl< _Idx, _Head, _Tail... >:
[legend]

## Public Types

typedef _Head_base< _Idx, _Head > | _Base
typedef _Tuple_impl< _Idx+1, _Tail... > | _Inherited

## Public Member Functions

constexpr | _Tuple_impl (const _Head &__head, const _Tail &... __tail)
template<typename _UHead , typename... _UTail, typename = typename enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>
constexpr | _Tuple_impl (_UHead &&__head, _UTail &&... __tail)
constexpr | _Tuple_impl (const _Tuple_impl &)=default
constexpr | _Tuple_impl (_Tuple_impl &&__in) noexcept(__and_< is_nothrow_move_constructible< _Head >, is_nothrow_move_constructible< _Inherited >>::value)
template<typename... _UElements>
constexpr | _Tuple_impl (const _Tuple_impl< _Idx, _UElements... > &__in)
template<typename _UHead , typename... _UTails>
constexpr | _Tuple_impl (_Tuple_impl< _Idx, _UHead, _UTails... > &&__in)
template<typename _Alloc >
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a)
template<typename _Alloc >
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, const _Head &__head, const _Tail &... __tail)
template<typename _Alloc , typename _UHead , typename... _UTail, typename = typename enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _UHead &&__head, _UTail &&... __tail)
template<typename _Alloc >
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, const _Tuple_impl &__in)
template<typename _Alloc >
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _Tuple_impl &&__in)
template<typename _Alloc , typename... _UElements>
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, const _Tuple_impl< _Idx, _UElements... > &__in)
template<typename _Alloc , typename _UHead , typename... _UTails>
| _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _Tuple_impl< _Idx, _UHead, _UTails... > &&__in)
_Tuple_impl & | operator= (const _Tuple_impl &__in)
_Tuple_impl & | operator= (_Tuple_impl &&__in) noexcept(__and_< is_nothrow_move_assignable< _Head >, is_nothrow_move_assignable< _Inherited >>::value)
template<typename... _UElements>
_Tuple_impl & | operator= (const _Tuple_impl< _Idx, _UElements... > &__in)
template<typename _UHead , typename... _UTails>
_Tuple_impl & | operator= (_Tuple_impl< _Idx, _UHead, _UTails... > &&__in)

## Static Public Member Functions

static constexpr _Head & | _M_head (_Tuple_impl &__t) noexcept
static constexpr const _Head & | _M_head (const _Tuple_impl &__t) noexcept
static constexpr _Inherited & | _M_tail (_Tuple_impl &__t) noexcept
static constexpr const _Inherited & | _M_tail (const _Tuple_impl &__t) noexcept

## Protected Member Functions

void | _M_swap (_Tuple_impl &__in) noexcept(__is_nothrow_swappable< _Head >::value &&noexcept(_M_tail(__in)._M_swap(_M_tail(__in))))

## Friends

template<std::size_t , typename... >
class | _Tuple_impl

## Detailed Description

### template<std::size_t _Idx, typename _Head, typename... _Tail>
struct std::_Tuple_impl< _Idx, _Head, _Tail... >

Recursive tuple implementation. Here we store the `Head` element and derive from a `Tuple_impl` containing the remaining elements (which contains the `Tail`).

Definition at line 185 of file tuple.

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

- tuple