Задать вопрос
@sidsukana

Как в std::tuple получить элемент по индексу для неизвестного числа аргументов?

Добрый день!
Сразу вопрос в лоб:
Почему вот такая конструкция не компилируется?
template<typename... Args>
MotionState* MotionMaster::CreateStandartState(MotionStateId stateId, Args... args)
{
    std::tuple<Args...> params = std::make_tuple(std::forward<Args>(args)...);
    float x = std::get<0>(params);
    float y = std::get<1>(params);
    float z = std::get<2>(params);
    ...
}


И выдает ошибку
std::get': no matching overloaded function found

А если явно указать количество аргументов шаблона, то эта конструкция работает.
Как распаковать параметры последовательно?
  • Вопрос задан
  • 267 просмотров
Подписаться 1 Оценить 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
stackoverflow.com/questions/687490/how-do-i-expand...

Разверните в массив и оттуда по индексу берите.
Ответ написан
Комментировать
@sidsukana Автор вопроса
Я так понимаю развернуть в массив актуально только однотипных парметров. У меня могут быть разные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы