Jak wydrukować argumenty funkcji przy użyciu szablonu zmiennego?

W tym przykładzie zastosowano wspólny szablon i funkcję zmiennika. Chcę wydrukować argumenty przekazane dof:

#include <iostream>

template <typename T>
void print(T t) {
   std::cout << t << std::endl;
}

template <typename...T>
void f(T &&...args) {
   print(args...);
   f(args...);
}

int main() {

    f(2, 1, 4, 3, 5);

}

Ale mam następujące błędy:

Kompilacja zakończona błędami:
source.cpp: w instancji 'void f(T ...) [zT = {int, int, int, int, int}] ”:
source.cpp: 16: 20: wymagane tutaj
source.cpp: 10: 4: błąd: brak funkcji dopasowania do wywołaniaprint(int&, int&, int&, int&, int&)'
source.cpp: 10: 4: uwaga: kandydat to:
source.cpp: 4: 6: uwaga:template<class T> void print(T)
source.cpp: 4: 6: note: odrzucenie / zastąpienie argumentu szablonu nie powiodło się: source.cpp: 10: 4: uwaga: kandydat oczekuje 1 argumentu, 5 podanych

To jest właściwie mój pierwszy raz, kiedy korzystam z funkcji zmiennoprzecinkowych i nie rozumiem dokładnie, jak ich używać. Nie rozumiem też, dlaczego to nie działa i co mogę zrobić, aby mu pomóc.

questionAnswers(2)

yourAnswerToTheQuestion