Does there exist something like std::tie for std::pair?

wrhall picture wrhall · Jul 7, 2015 · Viewed 10.7k times · Source

Eg with tuples:

#include <tuple>        // std::tuple, std::make_tuple, std::tie

int num;
char letter;
std::tuple<int,char> num_letter;

num_letter = std::make_tuple(10, 'a');
std::tie(num, letter) = num_letter;  // unpack num_letter into num and letter

Is there something equivalent with pairs?

// ...
num_letter = std::make_pair(10, 'a');
std::pair_tie(num, letter) = num_letter;

Answer

lisyarus picture lisyarus · Jul 7, 2015

Actually, the code for pairs is exactly the same, since std::tuple has operator = with std::pair as an argument.

num_letter = std::make_pair(10, 'a');
std::tie(num, letter) = num_letter;