В C ++ 11 у нас есть переменные шаблоны, в которых мы можем std::forward
аргументы, как в следующем коде
#include <utility>
#include <iostream>
#include <string>
void printVariadic()
{}
template<typename T, typename... Args>
void printVariadic(T&& arg, Args&&... args)
{
std::cout << arg << "\n";
printVariadic(std::forward<Args>(args)...); // here we forward the arguments
}
Но, в C ++ 17 у нас есть выражение сгиба (и изНасколько я понимаю, это не делает повторный вызов функции до последнего аргумента).
template<typename ... Args>
void print(Args ... args)
{
((cout << args << "\n"), ...); // did we here miss the part of `std::forward`?
}
В интерактивных примерах я не видел std::forward
аргументов, когда использовалось выражение сгиба.
Могу ли я переслать аргументы в выражении сгиба? Или нам это вообще не нужно?
Возможно, это глупый вопрос для новичка, но я не могу найти ответ в Интернете.