libstdc++
|
Inherits _Tuple_impl< _Idx+1, _Tail...>, and _Head_base< _Idx, _Head, __empty_not_final< _Head >::value >.
Public Types | |
typedef _Head_base< _Idx, _Head, __empty_not_final < _Head >::value > | _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 &) |
constexpr | _Tuple_impl (_Tuple_impl &&__in) noexcept(__and_< is_nothrow_move_constructible< _Head > |
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) | |
constexpr is_nothrow_move_constructible < _Inherited > | _Base (std::forward< _Head >(_M_head(__in))) |
_Tuple_impl & | operator= (const _Tuple_impl &__in) |
_Tuple_impl & | operator= (_Tuple_impl &&__in) noexcept(__and_< is_nothrow_move_assignable< _Head > |
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(noexcept(swap(std |
Friends | |
class | _Tuple_impl |
Recursive tuple implementation. Here we store the Head
element and derive from a Tuple_impl
containing the remaining elements (which contains the Tail
).