January 2018
Intermediate to advanced
374 pages
9h 53m
English
The individual elements of std::tuple can be accessed using the global function, std::get<Index>(tuple). You may wonder why the members can't be accessed like a regular container with the at(size_t index) member function. The reason is that a member function such as at() is only allowed to return one type, whereas a tuple consists of different types at different indices. Instead, the templated global function std::get is used with the index as a template parameter:
auto number = std::get<0>(tuple); auto str = std::get<1>(tuple); auto boolean = std::get<2>(tuple);
We can imagine the std::get() function being implemented roughly like this:
template <size_t Index, typename Tuple> auto& get(const Tuple& tpl) ...