Immer wenn ich eine Vorlage erstelle, weiß ich, dass sie als Funktionsargumente übergeben wird, aber gibt es einen bestimmten Grund, warum ich keine Vorlagen innerhalb meiner Hauptfunktion verwenden kann?Gibt es trotzdem Templates NICHT als Parameter, sondern als globalen Typ zu verwenden?
template <class Tmp>
int main()
{
Tmp pizza;
}
Aber als Parameter übergeben wird immer
template <class Tmp>
Tmp add(Tmp x, Tmp y)
{
return x+y;
}
Der obige Code meiner versucht variable Deklarationszeile es Zustand „Unbekannter Typ‚Tmp‘“ wird nicht ausgeführt, und als nächstes arbeiten, aber ich davon aus, dass wegen Ich habe die Vorlage außerhalb meiner Hauptfunktion deklariert. Gibt es einen bestimmten Grund, warum das so ist? Es scheint, als ob jeder nur Templates innerhalb von Funktionsparametern verwendet und nichts mehr.
Vielleicht suchen Sie nach 'typedef'? – user694733
Mit der Syntax ist das erste Snippet, wie (und wann) würden Sie erwarten, dass die Vorlage instanziiert wird? Was wäre 'Tmp'? – Quentin
Was sagt 'Pizza', welcher Typ es ist? – Galik