Возможна ли распаковка пары и кортежа в уже созданные переменные
Есть функция, которая возвращает пару или кортеж. Результат её вызова нужно сохранить в уже созданные ранее переменные. Можно ли это сделать не создавая промежуточных объектов?
// Функция возвращает пару.
std::pair<int, int> Foo() { return { 1, 2 }; }
...
// Распаковка пары в новые переменные.
auto [one, two] = Foo();
member_one_ = one; // Затем записываем результат в уже существующие переменные.
member_two_ = two;
В этом примере приходится создавать ненужные переменные one и two, которые по сути не нужны. Вместо этого хотелось бы видеть что-то подобное.
// Записываем возвращаемые значения сразу в необходимые переменные.
[ member_one, member_two ] = Foo();
Источник: Stack Overflow на русском