Espacios de nombres
Variantes
Acciones

Archivo de encabezado de la biblioteca estándar <tuple>

De cppreference.com
< cpp‎ | header
 
 
Archivos de encabezado de la biblioteca estándar
 

Este archivo de encabezado es parte de la bitlioteca de utilidades generales.

Contenido

Incluye

<compare>(desde C++20)

Clases

(C++11)
Implementa un contenedor de tamaño fijo, que contiene elementos de tipos posiblemente diferentes.
(plantilla de clase)[editar]
Obtiene el tamaño de una tupla en tiempo de compilación.
(especialización de plantilla de clase)[editar]
Obtiene el tipo del elemento especificado.
(especialización de plantilla de clase)[editar]
Especializa el rasgo de tipo std::uses_allocator.
(especialización de plantilla de clase)[editar]

Constantes

Marcador de posición para saltarse un elemento cuando se desempaca una tupla utilizando tie.
(constante)[editar]

Funciones

Crea un objeto de tupla del tipo definido por los tipos de argumentos.
(plantilla de función)[editar]
Crea una tupla de referencias lvalue o desempaca una tupla en objetos individuales.
(plantilla de función)[editar]
Crea una tupla de referencias r-valor.
(plantilla de función)[editar]
Crea una tupla mediante la concatenación de cualquier número de tuplas.
(plantilla de función)[editar]
La tupla accede al elemento especificado.
(plantilla de función)[editar]
Compara lexicográficamente los valores de la tupla
(plantilla de función)[editar]
Especializa el algoritmo std::swap.
(plantilla de función)[editar]
(C++17)
Llama a una función con una tupla de argumentos.
(plantilla de función)[editar]
Construye un objeto con una tupla de argumentos.
(plantilla de función)[editar]

[editar]Sinopsis

#include <compare>   namespace std {// plantilla de clase tupletemplate<class... Types>class tuple;   // funciones de creación de tuplasinlineconstexpr/* no especificado */ ignore;   template<class... TTypes>constexpr tuple<unwrap_ref_decay_t<TTypes>...> make_tuple(TTypes&&...);   template<class... TTypes>constexpr tuple<TTypes&&...> forward_as_tuple(TTypes&&...)noexcept;   template<class... TTypes>constexpr tuple<TTypes&...> tie(TTypes&...)noexcept;   template<class... Tuples>constexpr tuple<CTypes...> tuple_cat(Tuples&&...);   // llamada a una función con una tupla de argumentostemplate<class F, class Tuple>constexpr decltype(auto) apply(F&& f, Tuple&& t);   template<class T, class Tuple>constexpr T make_from_tuple(Tuple&& t);   // clases asistentes de tuplastemplate<class T>struct tuple_size;// no definidotemplate<class T>struct tuple_size<const T>;   template<class... Types>struct tuple_size<tuple<Types...>>;   template<size_t I, class T>struct tuple_element;// no definidotemplate<size_t I, class T>struct tuple_element<I, const T>;   template<size_t I, class... Types>struct tuple_element<I, tuple<Types...>>;   template<size_t I, class T>using tuple_element_t =typename tuple_element<I, T>::type;   // acceso de elementostemplate<size_t I, class... Types>constexpr tuple_element_t<I, tuple<Types...>>& get(tuple<Types...>&)noexcept;template<size_t I, class... Types>constexpr tuple_element_t<I, tuple<Types...>>&& get(tuple<Types...>&&)noexcept;template<size_t I, class... Types>constexprconst tuple_element_t<I, tuple<Types...>>& get(const tuple<Types...>&)noexcept;template<size_t I, class... Types>constexprconst tuple_element_t<I, tuple<Types...>>&& get(const tuple<Types...>&&)noexcept;template<class T, class... Types>constexpr T& get(tuple<Types...>& t)noexcept;template<class T, class... Types>constexpr T&& get(tuple<Types...>&& t)noexcept;template<class T, class... Types>constexprconst T& get(const tuple<Types...>& t)noexcept;template<class T, class... Types>constexprconst T&& get(const tuple<Types...>&& t)noexcept;   // operadores relacionalestemplate<class... TTypes, class... UTypes>constexprbool operator==(const tuple<TTypes...>&, const tuple<UTypes...>&);template<class... TTypes, class... UTypes>constexpr common_comparison_category_t</*resultado de tres vías sintetizado*/<TTypes, UTypes>...> operator<=>(const tuple<TTypes...>&, const tuple<UTypes...>&);   // rasgos relacionados con asignadores de memoriatemplate<class... Types, class Alloc>struct uses_allocator<tuple<Types...>, Alloc>;   // algoritmos especializadostemplate<class... Types>constexprvoid swap(tuple<Types...>& x, tuple<Types...>& y)noexcept(/* véase descripción */);   // clases asistentes de tuplastemplate<class T>inlineconstexpr size_t tuple_size_v = tuple_size<T>::value;}   // en desusonamespace std {template<class T>class tuple_size<volatile T>;template<class T>class tuple_size<constvolatile T>;   template<size_t I, class T>class tuple_element<I, volatile T>;template<size_t I, class T>class tuple_element<I, constvolatile T>;}

[editar]Plantilla de clase std::tuple

namespace std {template<class... Types>class tuple {public:// construcción de tuplasconstexprexplicit(/* véase descripción */) tuple();constexprexplicit(/* véase descripción */) tuple(const Types&...);// solamente si sizeof...(Types) >= 1template<class... UTypes>constexprexplicit(/* véase descripción */) tuple(UTypes&&...);// solamente si sizeof...(Types) >= 1   tuple(const tuple&)=default; tuple(tuple&&)=default;   template<class... UTypes>constexprexplicit(/* véase descripción */) tuple(const tuple<UTypes...>&);template<class... UTypes>constexprexplicit(/* véase descripción */) tuple(tuple<UTypes...>&&);   template<class U1, class U2>constexprexplicit(/* véase descripción */) tuple(const pair<U1, U2>&);// solamente si sizeof...(Types) == 2template<class U1, class U2>constexprexplicit(/* véase descripción */) tuple(pair<U1, U2>&&);// solamente si sizeof...(Types) == 2   // constructores extendidos con asignadores de memoriatemplate<class Alloc>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a);template<class Alloc>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, const Types&...);template<class Alloc, class... UTypes>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, UTypes&&...);template<class Alloc>constexpr tuple(allocator_arg_t, const Alloc& a, const tuple&);template<class Alloc>constexpr tuple(allocator_arg_t, const Alloc& a, tuple&&);template<class Alloc, class... UTypes>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, const tuple<UTypes...>&);template<class Alloc, class... UTypes>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, tuple<UTypes...>&&);template<class Alloc, class U1, class U2>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, const pair<U1, U2>&);template<class Alloc, class U1, class U2>constexprexplicit(/* véase descripción */) tuple(allocator_arg_t, const Alloc& a, pair<U1, U2>&&);   // asignación de tuplasconstexpr tuple& operator=(const tuple&);constexpr tuple& operator=(tuple&&)noexcept(/* véase descripción */);   template<class... UTypes>constexpr tuple& operator=(const tuple<UTypes...>&);template<class... UTypes>constexpr tuple& operator=(tuple<UTypes...>&&);   template<class U1, class U2>constexpr tuple& operator=(const pair<U1, U2>&);// solamente si sizeof...(Types) == 2template<class U1, class U2>constexpr tuple& operator=(pair<U1, U2>&&);// solamente si sizeof...(Types) == 2   // intercambio de tuplasconstexprvoid swap(tuple&)noexcept(/* véase descripción */);};   template<class... UTypes> tuple(UTypes...)-> tuple<UTypes...>;template<class T1, class T2> tuple(pair<T1, T2>)-> tuple<T1, T2>;template<class Alloc, class... UTypes> tuple(allocator_arg_t, Alloc, UTypes...)-> tuple<UTypes...>;template<class Alloc, class T1, class T2> tuple(allocator_arg_t, Alloc, pair<T1, T2>)-> tuple<T1, T2>;template<class Alloc, class... UTypes> tuple(allocator_arg_t, Alloc, tuple<UTypes...>)-> tuple<UTypes...>;}
close