Есть ли способ получить первое значение в пакете параметров без использования рекурсии? - PullRequest
0 голосов
/ 26 апреля 2020

Я видел много примеров кодов, которые используют рекурсию для извлечения значений из пакета параметров. Есть ли способ, кроме рекурсии, извлечь значения из пакета параметров?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Вы можете переслать все параметры пакета как кортеж, затем вызвать get<0>:

template<class ... Args>
void foo(Args&& ... args) {
    auto&& first = std::get<0>(std::forward_as_tuple(std::forward<Args>(args)...));
}
1 голос
/ 26 апреля 2020

Конечно, вызовите другую функцию:

template <typename First, typename ...Args>
auto&& firstArg(First&& first, Args&&...) noexcept
{
        return std::forward<First>(first);
}
...