libstdc++: std::tuple< _Elements > Class Template Reference

libstdc++

std::tuple< _Elements > Class Template Reference
Utilities

`#include <tuple>`

## Public Member Functions
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr | tuple (_UElements &&... __elements) noexcept(__nothrow_constructible< _UElements... >())
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr | tuple (_UElements &&... __elements) noexcept(__nothrow_constructible< _UElements... >())
template<typename _Alloc, _ImplicitDefaultCtor< is_object< _Alloc >::value > = true>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a)
template<typename _Alloc, _ExplicitDefaultCtor< is_object< _Alloc >::value > = false>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a)
template<typename _Alloc, typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&... __elements)
template<typename _Alloc, typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, _UElements &&... __elements)
template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, const __type_identity_t< _Elements > &... __elements)
template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, const __type_identity_t< _Elements > &... __elements)
template<typename _Alloc>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple &__in)
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, const tuple< _UElements... > &__in)
template<typename _Alloc>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, tuple &&__in)
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr | tuple (allocator_arg_t __tag, const _Alloc &__a, tuple< _UElements... > &&__in)
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>
constexpr | tuple (const __type_identity_t< _Elements > &... __elements) noexcept(__nothrow_constructible< const _Elements &... >())
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>
constexpr | tuple (const __type_identity_t< _Elements > &... __elements) noexcept(__nothrow_constructible< const _Elements &... >())
constexpr | tuple (const tuple &)=default
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>
constexpr | tuple (const tuple< _UElements... > &__in) noexcept(__nothrow_constructible< const _UElements &... >())
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>
constexpr | tuple (const tuple< _UElements... > &__in) noexcept(__nothrow_constructible< const _UElements &... >())
constexpr | tuple (tuple &&)=default
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>
constexpr | tuple (tuple< _UElements... > &&__in) noexcept(__nothrow_constructible< _UElements... >())
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>
constexpr | tuple (tuple< _UElements... > &&__in) noexcept(__nothrow_constructible< _UElements... >())
constexpr tuple & | operator= (__conditional_t< __assignable< _Elements... >(), tuple &&, __nonesuch && > __in) noexcept(__nothrow_assignable< _Elements... >())
constexpr tuple & | operator= (__conditional_t< __assignable< const _Elements &... >(), const tuple &, const __nonesuch & > __in) noexcept(__nothrow_assignable< const _Elements &... >())
template<typename... _UElements>
constexpr __enable_if_t< __assignable< const _UElements &... >(), tuple & > | operator= (const tuple< _UElements... > &__in) noexcept(__nothrow_assignable< const _UElements &... >())
template<typename... _UElements>
constexpr __enable_if_t< __assignable< _UElements... >(), tuple & > | operator= (tuple< _UElements... > &&__in) noexcept(__nothrow_assignable< _UElements... >())
constexpr void | swap (tuple &__in) noexcept(__and_< __is_nothrow_swappable< _Elements >... >::value)

## Detailed Description

template<typename... _Elements>
class std::tuple< _Elements >

Primary class template, tuple.

Definition at line 833 of file tuple.

## Constructor & Destructor Documentation

## ◆ tuple() [1/22]

template<typename... _Elements>
template<typename _Dummy = void, _ImplicitDefaultCtor< is_void< _Dummy >::value > = true>

std::tuple< _Elements >::tuple | ( |  | ) |
| inlineconstexprnoexcept

Definition at line 1459 of file tuple.

## ◆ tuple() [2/22]

template<typename... _Elements>
template<typename _Dummy = void, _ExplicitDefaultCtor< is_void< _Dummy >::value > = false>

std::tuple< _Elements >::tuple | ( |  | ) |
| inlineexplicitconstexprnoexcept

Definition at line 1466 of file tuple.

## ◆ tuple() [3/22]

template<typename... _Elements>
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>

std::tuple< _Elements >::tuple | ( | const __type_identity_t< _Elements > &... | __elements | ) |
| inlineconstexprnoexcept

Definition at line 1473 of file tuple.

## ◆ tuple() [4/22]

template<typename... _Elements>
template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>

std::tuple< _Elements >::tuple | ( | const __type_identity_t< _Elements > &... | __elements | ) |
| inlineexplicitconstexprnoexcept

Definition at line 1480 of file tuple.

## ◆ tuple() [5/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>

std::tuple< _Elements >::tuple | ( | _UElements &&... | __elements | ) |
| inlineconstexprnoexcept

Definition at line 1488 of file tuple.

## ◆ tuple() [6/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>

std::tuple< _Elements >::tuple | ( | _UElements &&... | __elements | ) |
| inlineexplicitconstexprnoexcept

Definition at line 1497 of file tuple.

## ◆ tuple() [7/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>

std::tuple< _Elements >::tuple | ( | const tuple< _UElements... > & | __in | ) |
| inlineconstexprnoexcept

Definition at line 1511 of file tuple.

## ◆ tuple() [8/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>

std::tuple< _Elements >::tuple | ( | const tuple< _UElements... > & | __in | ) |
| inlineexplicitconstexprnoexcept

Definition at line 1521 of file tuple.

## ◆ tuple() [9/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>

std::tuple< _Elements >::tuple | ( | tuple< _UElements... > && | __in | ) |
| inlineconstexprnoexcept

Definition at line 1531 of file tuple.

## ◆ tuple() [10/22]

template<typename... _Elements>
template<typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>

std::tuple< _Elements >::tuple | ( | tuple< _UElements... > && | __in | ) |
| inlineexplicitconstexprnoexcept

Definition at line 1541 of file tuple.

## ◆ tuple() [11/22]

template<typename... _Elements>
template<typename _Alloc, _ImplicitDefaultCtor< is_object< _Alloc >::value > = true>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a )
| inlineconstexpr

Definition at line 1551 of file tuple.

## ◆ tuple() [12/22]

template<typename... _Elements>
template<typename _Alloc, _ExplicitDefaultCtor< is_object< _Alloc >::value > = false>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a )
| inlineexplicitconstexpr

Definition at line 1558 of file tuple.

## ◆ tuple() [13/22]

template<typename... _Elements>
template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor< _NotEmpty, const _Elements &... > = true>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const __type_identity_t< _Elements > &... | __elements )
| inlineconstexpr

Definition at line 1564 of file tuple.

## ◆ tuple() [14/22]

template<typename... _Elements>
template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor< _NotEmpty, const _Elements &... > = false>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const __type_identity_t< _Elements > &... | __elements )
| inlineexplicitconstexpr

Definition at line 1572 of file tuple.

## ◆ tuple() [15/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements... > = true>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | _UElements &&... | __elements )
| inlineconstexpr

Definition at line 1580 of file tuple.

## ◆ tuple() [16/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements... > = false>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | _UElements &&... | __elements )
| inlineexplicitconstexpr

Definition at line 1590 of file tuple.

## ◆ tuple() [17/22]

template<typename... _Elements>
template<typename _Alloc>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const tuple< _Elements > & | __in )
| inlineconstexpr

Definition at line 1597 of file tuple.

## ◆ tuple() [18/22]

template<typename... _Elements>
template<typename _Alloc>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | tuple< _Elements > && | __in )
| inlineconstexpr

Definition at line 1602 of file tuple.

## ◆ tuple() [19/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ImplicitCtor< _Valid, const _UElements &... > = true>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const tuple< _UElements... > & | __in )
| inlineconstexpr

Definition at line 1610 of file tuple.

## ◆ tuple() [20/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<const tuple<_UElements...>&>(), _ExplicitCtor< _Valid, const _UElements &... > = false>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | const tuple< _UElements... > & | __in )
| inlineexplicitconstexpr

Definition at line 1622 of file tuple.

## ◆ tuple() [21/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ImplicitCtor< _Valid, _UElements... > = true>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | tuple< _UElements... > && | __in )
| inlineconstexpr

Definition at line 1633 of file tuple.

## ◆ tuple() [22/22]

template<typename... _Elements>
template<typename _Alloc, typename... _UElements, bool _Valid = (sizeof...(_Elements) == sizeof...(_UElements)) && !__use_other_ctor<tuple<_UElements...>&&>(), _ExplicitCtor< _Valid, _UElements... > = false>

std::tuple< _Elements >::tuple | ( | allocator_arg_t | __tag,
|  | const _Alloc & | __a,
|  | tuple< _UElements... > && | __in )
| inlineexplicitconstexpr

Definition at line 1645 of file tuple.

## Member Function Documentation

## ◆ operator=() [1/4]

template<typename... _Elements>

tuple & std::tuple< _Elements >::operator= | ( | __conditional_t< __assignable< _Elements... >(), tuple< _Elements > &&, __nonesuch && > | __in | ) |
| inlineconstexprnoexcept

Definition at line 1917 of file tuple.

## ◆ operator=() [2/4]

template<typename... _Elements>

tuple & std::tuple< _Elements >::operator= | ( | __conditional_t< __assignable< const _Elements &... >(), const tuple< _Elements > &, const __nonesuch & > | __in | ) |
| inlineconstexprnoexcept

Definition at line 1906 of file tuple.

## ◆ operator=() [3/4]

template<typename... _Elements>
template<typename... _UElements>

__enable_if_t< __assignable< const _UElements &... >(), tuple & > std::tuple< _Elements >::operator= | ( | const tuple< _UElements... > & | __in | ) |
| inlineconstexprnoexcept

Definition at line 1929 of file tuple.

## ◆ operator=() [4/4]

template<typename... _Elements>
template<typename... _UElements>

__enable_if_t< __assignable< _UElements... >(), tuple & > std::tuple< _Elements >::operator= | ( | tuple< _UElements... > && | __in | ) |
| inlineconstexprnoexcept

Definition at line 1939 of file tuple.

## ◆ swap()

template<typename... _Elements>

void std::tuple< _Elements >::swap | ( | tuple< _Elements > & | __in | ) |
| inlineconstexprnoexcept

Definition at line 1950 of file tuple.

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

- tuple