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 個函式參數的值。
備註
樣板函式會傳回 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