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

#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

 _Tuple_impl (_Tuple_impl &&)=default
template<typename _UHead, typename... _UTails>
constexpr _Tuple_impl (_Tuple_impl< _Idx, _UHead, _UTails... > &&__in)
template<typename _UHead, typename... _UTail, typename = __enable_if_t<sizeof...(_Tail) == sizeof...(_UTail)>>
constexpr _Tuple_impl (_UHead &&__head, _UTail &&... __tail)
template<typename _Alloc>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a)
template<typename _Alloc>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _Tuple_impl &&__in)
template<typename _Alloc, typename _UHead, typename... _UTails>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _Tuple_impl< _Idx, _UHead, _UTails... > &&__in)
template<typename _Alloc, typename _UHead, typename... _UTail, typename = __enable_if_t<sizeof...(_Tail) == sizeof...(_UTail)>>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, _UHead &&__head, _UTail &&... __tail)
template<typename _Alloc>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, const _Head &__head, const _Tail &... __tail)
template<typename _Alloc>
constexpr _Tuple_impl (allocator_arg_t __tag, const _Alloc &__a, const _Tuple_impl &__in)
template<typename _Alloc, typename _UHead, typename... _UTails>
constexpr _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>
constexpr void _M_assign (_Tuple_impl< _Idx, _UHead, _UTails... > &&__in)
template<typename... _UElements>
constexpr 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

constexpr void _M_swap (_Tuple_impl &__in)

Detailed Description

template<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 258 of file tuple.

Member Typedef Documentation

◆ _Base

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

Definition at line 265 of file tuple.

◆ _Inherited

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

Definition at line 264 of file tuple.

Constructor & Destructor Documentation

◆ _Tuple_impl() [1/12]

template<size_t _Idx, typename _Head, typename... _Tail>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( )
inlineconstexpr

Definition at line 279 of file tuple.

◆ _Tuple_impl() [2/12]

template<size_t _Idx, typename _Head, typename... _Tail>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( const _Head & __head,
const _Tail &... __tail )
inlineexplicitconstexpr

Definition at line 283 of file tuple.

◆ _Tuple_impl() [3/12]

template<size_t _Idx, typename _Head, typename... _Tail>
template<typename _UHead, typename... _UTail, typename = __enable_if_t<sizeof...(_Tail) == sizeof...(_UTail)>>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( _UHead && __head,
_UTail &&... __tail )
inlineexplicitconstexpr

Definition at line 290 of file tuple.

◆ _Tuple_impl() [4/12]

template<size_t _Idx, typename _Head, typename... _Tail>
template<typename... _UElements>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( const _Tuple_impl< _Idx, _UElements... > & __in)
inlineconstexpr

Definition at line 305 of file tuple.

◆ _Tuple_impl() [5/12]

template<size_t _Idx, typename _Head, typename... _Tail>
template<typename _UHead, typename... _UTails>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( _Tuple_impl< _Idx, _UHead, _UTails... > && __in)
inlineconstexpr

Definition at line 312 of file tuple.

◆ _Tuple_impl() [6/12]

template<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 )
inlineconstexpr

Definition at line 339 of file tuple.

◆ _Tuple_impl() [7/12]

template<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 )
inlineconstexpr

Definition at line 346 of file tuple.

◆ _Tuple_impl() [8/12]

template<size_t _Idx, typename _Head, typename... _Tail>
template<typename _Alloc, typename _UHead, typename... _UTail, typename = __enable_if_t<sizeof...(_Tail) == sizeof...(_UTail)>>
std::_Tuple_impl< _Idx, _Head, _Tail... >::_Tuple_impl ( allocator_arg_t __tag,
const _Alloc & __a,
_UHead && __head,
_UTail &&... __tail )
inlineconstexpr

Definition at line 355 of file tuple.

◆ _Tuple_impl() [9/12]

template<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 )
inlineconstexpr

Definition at line 364 of file tuple.

◆ _Tuple_impl() [10/12]

template<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 )
inlineconstexpr

Definition at line 372 of file tuple.

◆ _Tuple_impl() [11/12]

template<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 )
inlineconstexpr

Definition at line 381 of file tuple.

◆ _Tuple_impl() [12/12]

template<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 )
inlineconstexpr

Definition at line 391 of file tuple.

Member Function Documentation

◆ _M_assign() [1/2]

template<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)
inlineconstexpr

Definition at line 436 of file tuple.

◆ _M_assign() [2/2]

template<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)
inlineconstexpr

Definition at line 426 of file tuple.

◆ _M_head() [1/2]

template<size_t _Idx, typename _Head, typename... _Tail>
constexpr _Head & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_head ( _Tuple_impl< _Idx, _Head, _Tail... > & __t)
inlinestaticconstexprnoexcept

Definition at line 268 of file tuple.

◆ _M_head() [2/2]

template<size_t _Idx, typename _Head, typename... _Tail>
constexpr const _Head & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_head ( const _Tuple_impl< _Idx, _Head, _Tail... > & __t)
inlinestaticconstexprnoexcept

Definition at line 271 of file tuple.

◆ _M_swap()

template<size_t _Idx, typename _Head, typename... _Tail>
void std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_swap ( _Tuple_impl< _Idx, _Head, _Tail... > & __in)
inlineconstexprprotected

Definition at line 468 of file tuple.

◆ _M_tail() [1/2]

template<size_t _Idx, typename _Head, typename... _Tail>
constexpr _Inherited & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_tail ( _Tuple_impl< _Idx, _Head, _Tail... > & __t)
inlinestaticconstexprnoexcept

Definition at line 274 of file tuple.

◆ _M_tail() [2/2]

template<size_t _Idx, typename _Head, typename... _Tail>
constexpr const _Inherited & std::_Tuple_impl< _Idx, _Head, _Tail... >::_M_tail ( const _Tuple_impl< _Idx, _Head, _Tail... > & __t)
inlinestaticconstexprnoexcept

Definition at line 277 of file tuple.

◆ _Tuple_impl

template<size_t _Idx, typename _Head, typename... _Tail>
template<size_t, typename...>
friend struct _Tuple_impl
friend

Definition at line 262 of file tuple.


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