This documentation is archived and is not being maintained.

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
tuple(tuple&& right);
template <class U1, class U2>
    tuple(pair<U1, U2>&& right);

UN

The type of the Nth copied tuple element.

right

The tuple to copy from.

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.

The remaining constructors are analogs to earlier ones, but with Rvalue Reference Declarator: &&.

 

// std_tr1__tuple__tuple_tuple.cpp 
// compile with: /EHsc 
#include <tuple> 
#include <iostream> 
#include <utility> 
 
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; 
 
    Mytuple c1; 
    c1 = c0; 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::get<0>(c1); 
    std::cout << " " << std::get<1>(c1); 
    std::cout << " " << std::get<2>(c1); 
    std::cout << " " << std::get<3>(c1); 
    std::cout << std::endl; 
 
    std::tuple<char, int> c2(std::make_pair('x', 4)); 
 
// display contents " x 4" 
    std::cout << " " << std::get<0>(c2); 
    std::cout << " " << std::get<1>(c2); 
    std::cout << std::endl; 
 
    Mytuple c3(c0); 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::get<0>(c3); 
    std::cout << " " << std::get<1>(c3); 
    std::cout << " " << std::get<2>(c3); 
    std::cout << " " << std::get<3>(c3); 
    std::cout << std::endl; 
 
    typedef std::tuple<int, float, int, float> Mytuple2; 
    Mytuple c4(Mytuple2(4, 5, 6, 7)); 
 
// display contents " 4 5 6 7" 
    std::cout << " " << std::get<0>(c4); 
    std::cout << " " << std::get<1>(c4); 
    std::cout << " " << std::get<2>(c4); 
    std::cout << " " << std::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

Header: <tuple>

Namespace: std

Show: