std::forward_as_tuple
Aus 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. |
definiert in Header <tuple>
|
||
template< class... Types > tuple<Types...> forward_as_tuple( Types&&... args ); |
(seit C++11) | |
Erzeugt ein Tupel von Verweisen auf die Argumente
args
für die Weiterleitung als Argument an eine Funktion. Die Tupel hat rvalue Referenzdaten Mitglieder, wenn rvalues als Argumente verwendet werden, und sonst lvalue Referenzdaten Mitglieder. Wenn rvalues verwendet werden, muss das Ergebnis dieser Funktion vor der nächsten Sequenz Punkt verzehrt werden .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.
Inhaltsverzeichnis |
[Bearbeiten] Parameter
args | - | null oder mehr Argumente, um die Tupel aus zu bauen
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. |
[Bearbeiten] Rückgabewert
A
std::tuple
Objekt wie von std::tuple<Types&&...>(std::forward<Types>(args)...) erstelltOriginal:
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.
[Bearbeiten] Ausnahmen
[Bearbeiten] Beispiel
#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
erzeugt eine tuple Objekt des Typs von den Argumenttypen definiertOriginal: 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. (Funktions-Template) | |
erzeugt ein tuple aus lvalue Referenzen oder entpackt ein Tupel in einzelne ObjekteOriginal: 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. (Funktions-Template) | |
erzeugt ein tuple durch Verketten einer beliebigen Anzahl von TupelnOriginal: 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. (Funktions-Template) |