tuple::tuple
Constructs a tuple object.
tuple();
explicit tuple(P1, P2, ..., PN); // 0 < N
tuple(const tuple& right);
template <class U1, class U2, ..., class UN>
tuple(const tuple<U1, U2, ..., UN>& right);
template <class U1, class U2>
tuple(const pair<U1, U2>& right); // N == 2
Parameters
UN
The type of the Nth copied tuple element.right
The tuple to copy from.
Remarks
The first constructor constructs an object whose elements are default constructed. The second constructor constructs an object whose elements are copy constructed from the arguments P1, P2, ..., PN with each Pi initializing the element at index i - 1. The third and fourth constructors construct an object whose elements are copy constructed from the corresponding element of right. The fifth constructor constructs an object whose element at index 0 is copy constructed from right.first and whose element at index 1 is copy constructed from right.second.
Example
// std_tr1__tuple__tuple_tuple.cpp
// compile with: /EHsc
#include <tuple>
#include <iostream>
#include <utility>
typedef std::tr1::tuple<int, double, int, double> Mytuple;
int main()
{
Mytuple c0(0, 1, 2, 3);
// display contents " 0 1 2 3"
std::cout << " " << std::tr1::get<0>(c0);
std::cout << " " << std::tr1::get<1>(c0);
std::cout << " " << std::tr1::get<2>(c0);
std::cout << " " << std::tr1::get<3>(c0);
std::cout << std::endl;
Mytuple c1;
c1 = c0;
// display contents " 0 1 2 3"
std::cout << " " << std::tr1::get<0>(c1);
std::cout << " " << std::tr1::get<1>(c1);
std::cout << " " << std::tr1::get<2>(c1);
std::cout << " " << std::tr1::get<3>(c1);
std::cout << std::endl;
std::tr1::tuple<char, int> c2(std::make_pair('x', 4));
// display contents " x 4"
std::cout << " " << std::tr1::get<0>(c2);
std::cout << " " << std::tr1::get<1>(c2);
std::cout << std::endl;
Mytuple c3(c0);
// display contents " 0 1 2 3"
std::cout << " " << std::tr1::get<0>(c3);
std::cout << " " << std::tr1::get<1>(c3);
std::cout << " " << std::tr1::get<2>(c3);
std::cout << " " << std::tr1::get<3>(c3);
std::cout << std::endl;
typedef std::tr1::tuple<int, float, int, float> Mytuple2;
Mytuple c4(Mytuple2(4, 5, 6, 7));
// display contents " 4 5 6 7"
std::cout << " " << std::tr1::get<0>(c4);
std::cout << " " << std::tr1::get<1>(c4);
std::cout << " " << std::tr1::get<2>(c4);
std::cout << " " << std::tr1::get<3>(c4);
std::cout << std::endl;
return (0);
}
0 1 2 3 0 1 2 3 x 4 0 1 2 3 4 5 6 7
Requirements
Header: <tuple>
Namespace: std::tr1