std::forward_as_tuple
De cppreference.com
![]() |
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate.
La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
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.
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.
You can help to correct and verify the translation. Click here for instructions.
[editar] Excepciones
[editar] Ejemplo
Ejecuta este código
#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) | |
Crea una tupla de referencias lvalue o desempaca una tupla en objetos individuales. (plantilla de función) | |
Crea una tupla mediante la concatenación de cualquier número de tuplas. (plantilla de función) |