Я использовал std::tie
, не задумываясь о нем. Он работает, поэтому я только что принял это:
auto test()
{
int a, b;
std::tie(a, b) = std::make_tuple(2, 3);
// a is now 2, b is now 3
return a + b; // 5
}
Но как работает эта черная магия? Как временный, созданный с помощью std::tie
изменить a
и b
? Я нахожу это более интересным, поскольку это функция библиотеки, а не функция языка, поэтому, безусловно, это то, что мы можем реализовать и понять.