tuple::tuple
Collapse the table of content
Expand the table of content

tuple::tuple

 

Constructs a tuple object.

constexpr tuple();

 explicit constexpr tuple(const Types&...);

 template <class... UTypes> 
explicit constexpr tuple(UTypes&&...);

tuple(const tuple&) = default;
 tuple(tuple&&) = default;

template <class... UTypes>
 constexpr tuple(const tuple<UTypes...>&);

 template <class... UTypes>
 constexpr tuple(tuple<UTypes...>&&);

template <class U1, class U2> 
constexpr tuple(const pair<U1, U2>&); // only if sizeof...(Types) == 2 

template <class U1, class U2>
 constexpr tuple(pair<U1, U2>&&); // only if sizeof...(Types) == 2

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: &&.

Example

 

// 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

Requirements

Header: <tuple>

Namespace: std

Show:
© 2016 Microsoft