Espacios de nombres
Variantes
Acciones

std::forward_as_tuple

De cppreference.com
< cpp‎ | utility‎ | tuple
 
 
Biblioteca de servicios
 
std::tuple
Funciones miembro
Funciones no miembro
forward_as_tuple
(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(C++20)
Guías de deducción(C++17)
Clases asistentes
 
Definido en el archivo de encabezado <tuple>
template< class... Types >
tuple<Types...> forward_as_tuple( Types&&... args );
(desde C++11)
Construye una tupla de referencias a los argumentos en args adecuados para la transmisión como argumento a una función. La tupla tiene rvalue miembros de datos de referencia cuando rvalues ​​se utilizan como argumentos, y por lo demás tiene lvalue miembros de datos de referencia. Si rvalues ​​se utiliza, el resultado de esta función debe ser consumido antes de que el punto de secuencia siguiente .
Original:
Constructs a tuple of references to the arguments in args suitable for forwarding as an argument to a function. The tuple has rvalue reference data members when rvalues are used as arguments, and otherwise has lvalue reference data members. If rvalues are used, the result of this function must be consumed before the next sequence point.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Contenido

[editar] Parámetros

args -
cero o más argumentos para construir la tupla
Original:
zero or more arguments to construct the tuple from
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Valor de retorno

Un objeto creado std::tuple como por std::tuple<Types&&...>(std::forward<Types>(args)...)
Original:
A std::tuple object created as if by std::tuple<Types&&...>(std::forward<Types>(args)...)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Excepciones

Especificación noexcept:  
noexcept
  (desde C++11)

[editar] Ejemplo

#include <iostream>
#include <map>
#include <tuple>
#include <string>
 
int main()
{
    std::map<int, std::string> m;
 
    // same as m.emplace(10, 20, 'a');
    m.emplace(std::forward_as_tuple(10, std::string(20, 'a')));
    std::cout << "m[10] = " << m[10] << '\n';
 
    // The following is an error: it produces a
    // std::tuple<int&&, std::string&&> holding two dangling references.
    //
    // auto t = std::forward_as_tuple(10, std::string(20, 'a'));
    // m.emplace(t);
}

Salida:

m[10] = aaaaaaaaaaaaaaaaaaaa
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 mediante la concatenación de cualquier número de tuplas.
(plantilla de función) [editar]