Defined in header <tuple> | ||||
---|---|---|---|---|
| (since C++11) (until C++14) | |||
| (since C++14) |
Creates a tuple object, deducing the target type from the types of arguments.
For each Ti
in Types...
, the corresponding type Vi
in Vtypes...
is std::decay<Ti>::type
unless application of std::decay
results in std::reference_wrapper<X>
for some type X
, in which case the deduced type is X&
.
Parameters
args | - | zero or more arguments to construct the tuple from |
Return value
A std::tuple
object containing the given values, created as if by std::tuple<VTypes...>(std::forward<Types>(t)...).
Possible implementation
|
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> #include <tuple> #include <functional> std::tuple< int , int > f() // this function returns multiple values { int x = 5; return std::make_tuple(x, 7); // return {x,7}; in C++17 } int main() { // heterogeneous tuple construction int n = 1; auto t = std::make_tuple(10, "Test" , 3.14, std::ref(n), n); n = 7; std::cout << "The value of t is " << "(" << std::get<0>(t) << ", " << std::get<1>(t) << ", " << std::get<2>(t) << ", " << std::get<3>(t) << ", " << std::get<4>(t) << ")\n" ; // function returning multiple values int a, b; std::tie(a, b) = f(); std::cout << a << " " << b << "\n" ; } |
Output:
1 2 | The value of t1 is (10, Test, 3.14, 7, 1) 5 7 |
creates a tuple of lvalue references or unpacks a tuple into individual objects (function template) | |
creates a tuple of rvalue references (function template) | |
creates a tuple by concatenating any number of tuples (function template) |
Please login to continue.