Im Kontext von CmdBuffer < 32> akzeptieren die spitzen Klammern Template-Argumente für eine entsprechende Klassenvorlage. Vorlagen sind ein Merkmal von C++, das es ermöglicht, eine Klasse (oder Funktion) teilweise zu definieren. Wenn geeignete Argumente angegeben werden, wird davon ausgegangen, dass die Vorlage in eine Klasse instanziiert wird, und die Klasse wiederum kann zum Instanziieren eines Objekts verwendet werden.
Im Gegensatz zu Funktionsparametern, die zur Laufzeit dynamisch bereitgestellt werden können, müssen die Template-Parameter zur Kompilierzeit bekannt sein. D. h., Sie können eine nicht konstante Variable nicht verwenden, um CmdBuffer in verschiedene Größen zu instanziieren, wenn das Programm bereits ausgeführt wird.
Die Parameter einer Klassenvorlage können entweder Typen oder Werte sein. Zum Beispiel kann der Klassenvorlagenvektor verwendet werden, um Variablengrößenfelder zu halten, aber nur nachdem ein Datentyp bereitgestellt wurde.
vector<int> aVectorOfInts;
In Ihrem Beispiel hat die Klassenvorlage einen Wertparameter und keinen Typparameter. Der Wert wird verwendet, um die Größe des statischen Arrays für den Puffer zu definieren. Es muss zum Zeitpunkt der Kompilierung bekannt sein.
Dies ist so viel wie eine Dose Würmer, wie Sie in der Sprache C++ öffnen könnten: http://en.cppreference.com/w/cpp/language/template_parameters. Hier gehst du :-). –
danke für deine hilfe – steamPickle