std::forward vs static_cast для переменных аргументов

Я не до конца понимаю, что делает "&&" после параметра variadic. Следующие функции в целом одинаковы, или в некоторых случаях есть разница?

template <typename... Args>
void function1(Args&&... args)
{
    some_other_function(std::forward<Args>(args)...);
}

template <typename... Args>
void function2(Args&&... args)
{
    some_other_function(static_cast<Args&&>(args)...);
}

Я протестировал множество возможностей, и все они дают одинаковый эффект для обеих функций.

0 ответов

Другие вопросы по тегам