| 
| 
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) | 
|   | 
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 215 of file tuple.