make_tuple 関数
要素の値から tuple を作成します。
template<class T1, class T2, ..., class TN>
tuple<V1, V2, ..., VN>
make_tuple(const T1& t1, const T2& t2, ..., const TN& tN);
パラメーター
TN
N 番目の関数パラメーターの型。tN
N 番目の関数パラメーターの値。
解説
このテンプレート関数は、対応する型 Ti が cv reference_wrapper<X>の場合、型 Vi が X& である tuple<V1, V2, ..., VN>(t1, t2, ..., tN)を返しますが、; それ以外の場合は Tiです。
make_tuple の1種類の利点は、格納されているオブジェクトの型がコンパイラによって自動的に決定され、明示的に指定する必要がないことです。必要以上に詳細で、コンパイル エラーが発生する可能性がある複雑なrvalue参照問題を追加するため make_tuple を使用すると make_tuple<int, int>(1, 2) などの明示的なテンプレート引数を使用しないでください。
使用例
// std_tr1__tuple__make_tuple.cpp
// compile by using: /EHsc
#include <tuple>
#include <iostream>
typedef std::tuple<int, double, int, double> Mytuple;
int main()
{
Mytuple c0(0, 1, 2, 3);
// display contents " 0 1 2 3"
std::cout << " " << std::get<0>(c0);
std::cout << " " << std::get<1>(c0);
std::cout << " " << std::get<2>(c0);
std::cout << " " << std::get<3>(c0);
std::cout << std::endl;
c0 = std::make_tuple(4, 5, 6, 7);
// display contents " 4 5 6 7"
std::cout << " " << std::get<0>(c0);
std::cout << " " << std::get<1>(c0);
std::cout << " " << std::get<2>(c0);
std::cout << " " << std::get<3>(c0);
std::cout << std::endl;
return (0);
}
0 1 2 3 4 5 6 7
必要条件
ヘッダー : <tuple>
名前空間: std