make_tuple Function
由元素值进行 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 个函数参数的值。
备注
模板函数返回 tuple<V1, V2, ..., VN>(t1, t2, ..., tN),每个类型 Vi 是 X&,当相应的类型 Ti 是 cv reference_wrapper<X>时;否则,为 Ti。
make_tuple 的一个优点是存储编译器自动取决于对象的类型,并且不需要显式指定。 不要使用显式模板参数 make_tuple<int, int>(1, 2) 例如,当您使用 make_tuple 时,因为它不必要地详细的并添加复杂性 rvalue 引用可能导致生成失败的问题。
示例
// 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