std::forward_as_tuple
提供: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 ); |
(C + + 11以来) | |
関数への引数として転送するのに適し
argsの引数への参照のタプルを構築します。タプルは右辺値が引数として使用されているとき右辺値参照データメンバを持つ、それ以外は左辺値参照データメンバを持っています。右辺値が使用されている場合、この関数の結果は次のシーケンスポイントの前に消費しなければならない.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.
目次 |
[編集] パラメータ
| args | - | からタプルを構築するためにゼロ個以上の引数
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. |
[編集] 値を返します
std::tupleオブジェクトは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.
[編集] 例外
[編集] 例
#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
| 引数の型で定義された型の tupleオブジェクトを作成しますOriginal: 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. (関数テンプレート) | |
| 左辺値参照またはアンパックの tupleは、個々のオブジェクトにタプルが作成されますOriginal: 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. (関数テンプレート) | |
| タプルの任意の番号を連結することによって tupleを作成しますOriginal: 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. (関数テンプレート) | |