名前空間
変種
操作

std::forward_as_tuple

提供: cppreference.com
< cpp‎ | utility‎ | tuple

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.

目次

[編集] パラメータ

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.

[編集] 例外

noexcept specification:  
noexcept
  (C++11およびそれ以降)

[編集]

#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);
}

出力:

m[10] = aaaaaaaaaaaaaaaaaaaa
引数の型で定義されるtuple型のオブジェクトを作成します
(関数テンプレート) [edit]
左辺値参照のtupleを作成します。tupleを個々のオブジェクトに分解することにも応用できます。
(関数テンプレート) [edit]
任意の数のタプルを連結して新たなtupleを作成します。
(関数テンプレート) [edit]