STD::TUPLE(3)

✨ std::tuple< _Elements >(3) ✨ Library Functions Manual

okay bestie, welcome to the std::tuple< _Elements > page πŸ’– this is the primary class template, tuple, and we're about to go through every single detail together. no skips, no cap, just pure template realness 🫢


🌸 NAME 🌸

std::tuple< _Elements > β€” Primary class template, tuple. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

include this, obviously:

#include <tuple>

πŸ’… Public Member Functions πŸ’…

bestie, here is the entire cast β€” every constructor, every assignment operator, and the swap, exactly as they appear. it's giving template supremacy ✨

       template<typename... _UElements, bool _Valid =
           __valid_args<_UElements...>(), _ExplicitCtor< _Valid, _UElements...
           > = false> constexpr tuple (_UElements &&... __elements)
           noexcept(__nothrow_constructible< _UElements... >())
       template<typename... _UElements, bool _Valid =
           __valid_args<_UElements...>(), _ImplicitCtor< _Valid, _UElements...
           > = true> constexpr tuple (_UElements &&... __elements)
           noexcept(__nothrow_constructible< _UElements... >())
       template<typename _Alloc, _ExplicitDefaultCtor< is_object< _Alloc
           >::value > = false> constexpr tuple (allocator_arg_t __tag, const
           _Alloc &__a)
       template<typename _Alloc, _ImplicitDefaultCtor< is_object< _Alloc
           >::value > = true> constexpr tuple (allocator_arg_t __tag, const
           _Alloc &__a)
       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, 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, 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, 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> 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...>&>(), _ExplicitCtor<
           _Valid, const _UElements &... > = false> 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...>&>(), _ImplicitCtor<
           _Valid, const _UElements &... > = true> 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...>&&>(), _ExplicitCtor< _Valid,
           _UElements... > = false> 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...>&&>(), _ImplicitCtor< _Valid,
           _UElements... > = true> constexpr tuple (allocator_arg_t __tag,
           const _Alloc &__a, tuple< _UElements... > &&__in)
       template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ExplicitCtor<
           _NotEmpty, const _Elements &... > = false> constexpr tuple (const
           __type_identity_t< _Elements > &... __elements)
           noexcept(__nothrow_constructible< const _Elements &... >())
       template<bool _NotEmpty = (sizeof...(_Elements) >= 1), _ImplicitCtor<
           _NotEmpty, const _Elements &... > = true> 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...>&>(), _ExplicitCtor< _Valid, const _UElements
           &... > = false> 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...>&>(), _ImplicitCtor< _Valid, const _UElements
           &... > = true> 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...>&&>(), _ExplicitCtor< _Valid,
           _UElements... > = false> constexpr tuple (tuple< _UElements... >
           &&__in) noexcept(__nothrow_constructible< _UElements... >())
       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... >())
       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.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code. πŸ’–


okay that's the whole page, bestie! this manual is from libstdc++, and the footer says std::tuple< _Elements >(3). stay iconic, go slay some templates πŸ’…βœ¨

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms