std::_Tuple_impl< _Idx, _Head, _Tail... > Struct Template Reference
Utilities

`#include <tuple>`

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

## 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)

## 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.

## Member Typedef Documentation

## _Base

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

typedef _Head_base<_Idx, _Head> std::_Tuple_impl< _Idx, _Head, _Tail... >::_Base

Definition at line 192 of file tuple.

## _Inherited

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

typedef _Tuple_impl<_Idx + 1, _Tail...> std::_Tuple_impl< _Idx, _Head, _Tail... >::_Inherited

Definition at line 191 of file tuple.

## Constructor & Destructor Documentation

## _Tuple_impl() [1/13]

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

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( |  | ) |

inline constexpr

Definition at line 206 of file tuple.

## _Tuple_impl() [2/13]

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

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | const _Head & | __head,
|  | const _Tail &... | __tail
| ) |  |

inline explicit constexpr

Definition at line 210 of file tuple.

## _Tuple_impl() [3/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _UHead , typename... _UTail, typename = typename enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | _UHead && | __head,
|  | _UTail &&... | __tail
| ) |  |

inline explicit constexpr

Definition at line 216 of file tuple.

## _Tuple_impl() [4/13]

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

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | _Tuple_impl< _Idx, _Head, _Tail... > && | __in | ) |

inline constexpr noexcept

Definition at line 227 of file tuple.

## _Tuple_impl() [5/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename... _UElements>

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | const _Tuple_impl< _Idx, _UElements... > & | __in | ) |

inline constexpr

Definition at line 234 of file tuple.

## _Tuple_impl() [6/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _UHead , typename... _UTails>

constexpr std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | _Tuple_impl< _Idx, _UHead, _UTails... > && | __in | ) |

inline constexpr

Definition at line 239 of file tuple.

## _Tuple_impl() [7/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc >

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a
| ) |  |

inline

Definition at line 246 of file tuple.

## _Tuple_impl() [8/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc >

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const _Head & | __head,
|  | const _Tail &... | __tail
| ) |  |

inline

Definition at line 251 of file tuple.

## _Tuple_impl() [9/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc , typename _UHead , typename... _UTail, typename = typename enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | _UHead && | __head,
|  | _UTail &&... | __tail
| ) |  |

inline

Definition at line 259 of file tuple.

## _Tuple_impl() [10/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc >

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const _Tuple_impl< _Idx, _Head, _Tail... > & | __in
| ) |  |

inline

Definition at line 266 of file tuple.

## _Tuple_impl() [11/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc >

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | _Tuple_impl< _Idx, _Head, _Tail... > && | __in
| ) |  |

inline

Definition at line 272 of file tuple.

## _Tuple_impl() [12/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc , typename _UHead , typename... _UTails>

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const _Tuple_impl< _Idx, _UHead, _UTails... > & | __in
| ) |  |

inline

Definition at line 279 of file tuple.

## _Tuple_impl() [13/13]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _Alloc , typename _UHead , typename... _UTails>

std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | _Tuple_impl< _Idx, _UHead, _UTails... > && | __in
| ) |  |

inline

Definition at line 287 of file tuple.

## Member Function Documentation

## _M_assign() [1/2]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename _UHead , typename... _UTails>

void std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_assign | ( | _Tuple_impl< _Idx, _UHead, _UTails... > && | __in | ) |

inline

Definition at line 306 of file tuple.

## _M_assign() [2/2]

template<std::size_t _Idx, typename _Head , typename... _Tail>
template<typename... _UElements>

void std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_assign | ( | const _Tuple_impl< _Idx, _UElements... > & | __in | ) |

inline

Definition at line 297 of file tuple.

## _M_head() [1/2]

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

static constexpr _Head & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_head | ( | _Tuple_impl< _Idx, _Head, _Tail... > & | __t | ) |

inline static constexpr noexcept

Definition at line 195 of file tuple.

## _M_head() [2/2]

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

static constexpr const _Head & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_head | ( | const _Tuple_impl< _Idx, _Head, _Tail... > & | __t | ) |

inline static constexpr noexcept

Definition at line 198 of file tuple.

## _M_swap()

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

void std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_swap | ( | _Tuple_impl< _Idx, _Head, _Tail... > & | __in | ) |

inline protected

Definition at line 316 of file tuple.

## _M_tail() [1/2]

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

static constexpr _Inherited & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_tail | ( | _Tuple_impl< _Idx, _Head, _Tail... > & | __t | ) |

inline static constexpr noexcept

Definition at line 201 of file tuple.

## _M_tail() [2/2]

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

static constexpr const _Inherited & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_tail | ( | const _Tuple_impl< _Idx, _Head, _Tail... > & | __t | ) |

inline static constexpr noexcept

Definition at line 204 of file tuple.

## Friends And Related Symbol Documentation

## _Tuple_impl

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

friend class _Tuple_impl

friend

Definition at line 189 of file tuple.

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

- tuple