Quickly composing data structures with std::tuple
Let's have a look at a basic use case for tuples that we most probably already know. We can define a structure as follows, in order to just bundle some variables:
struct Foo {
int a;
string b;
float c;
};Instead of defining a structure as in the preceding example, we can also define a tuple:
using Foo = tuple<int, string, float>;
We can access its items using the index number of the type from the type list. In order to access the first member of a tuple, t, we can use std::get<0>(t) to access the second member we write std::get<1>, and so on. If the index number is too large, then the compiler will even safely error out.
Throughout the book, we have already used the decomposition capabilities of C++17 for tuples. They allow us to decompose a tuple quickly by just writing auto [a, b, c] = some_tuple in order to access its individual items.
Composing and decomposing single data structures are not the only things we...