Während versucht, das Konzept der variadischen Vorlagen zu verstehen. Ich bin auf dieses Beispiel gestoßen. Dies scheint für mich ein minimalistisches Beispiel zu sein.kann nicht verstehen, diese variadic Vorlage Beispiel
void output() --------->function A
{ cout << "This is the results\n"; }
template <typename T, typename ...P>
void output(T t, P ...p) ------->functionB
{
cout << t << ' ';
{
output(p...); ------>statement A
}
}
//Test it
int main()
{
output('5', 2);
return(0);
}
Nun ist die Ausgabe des obigen Programms ist:
5 2 This is the results
Hier sind einige Fragen, die ich in Bezug auf dieses Beispiel hatte:
1) Was Aussage ist eine Berufung? ruft es die Funktion A? Aber es scheint nur einmal zu nennen, und auch die Methode hat keine Parameter in ihrer Signatur? Wie habe ich 5 2 This is the results
in dem obigen Beispiel als Ausgangs
2) erhalten Was bedeutet es, wenn der Autor erklärt, dass variadische Klassen rekursiv sind und somit benötigen sie eine Basisklasse
Sie haben nicht sorgfältig gelesen. Es ist "Base Case", nicht "Basisklasse". –
Ich denke, das sollte in jedem Tutorial zu variadischen Vorlagen behandelt werden, nein? – juanchopanza