Можно ли развернуть картеж, чтоб передать его в качестве аргумента в функцию, где требуется несколько аргументов?
Вот пример, у нас есть кортеж
auto t = std::make_tuple(1, 2, 3);
есть функция
int calc(int a, int b, int c);
Могу ли я как то развернуть кортеж, чтоб передать его вместо 3 аргументов в функцию?
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Для этого в стандартной библиотеке есть вспомогательная функция apply:
#include <tuple>
int calc(int a, int b, int c)
{
return a + b + c;
}
int main()
{
return ::std::apply(::calc, ::std::make_tuple(1, 2, 3));
}