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 是 cvreference_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