Accessing tuple elements

Prior to C++17, there were two standard ways of accessing elements of a std::tuple:

  • For accessing single elements, the static function std::get<N>(tuple) was used.
  • For accessing multiple elements, the static function std::tie() was used.

Although they both worked, the syntax was for performing such a simple task was very verbose, as shown in the following example:

// Prerequisite
auto make_bond() { return std::make_tuple(std::string{"James"}, 7, true) } 
 
// Using std::get<N> 
auto tpl = make_bond(); 
auto name = std::get<0>(tpl); 
auto id = std::get<1>(tpl); 
auto kill_license = std::get<2>(tpl); 
std::cout << name << ", " << id << ", " << kill_license << '\n'; 
// Output: James, 7, true 
 
// Using std::tie 
auto name = ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.