std::forward_as_tuple
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <tuple>
|
||
| template< class... Types > tuple<Types...> forward_as_tuple( Types&&... args ); |
(ya que 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
#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); }
Output:
m[10] = aaaaaaaaaaaaaaaaaaaa
| crea un objeto tuple del tipo definido por los tipos de argumentosOriginal: creates a tuple object of the type defined by the argument typesThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función de plantilla) | |
| crea una tuple de referencias lvalue o desempaqueta una tupla en objetos individualesOriginal: creates a tuple of lvalue references or unpacks a tuple into individual objectsThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función de plantilla) | |
| crea un tuple mediante la concatenación de cualquier número de tuplasOriginal: creates a tuple by concatenating any number of tuplesThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función de plantilla) | |