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