single
Nicht-Typ-Template-Parameter
Swipe um das Menü anzuzeigen
Beim Definieren einer Vorlage können nicht nur Typen, sondern auch Werte an diese Typen übergeben werden. Dadurch lassen sich Vorlagen erstellen, die sich je nach übergebenen Werten unterschiedlich verhalten. Darauf gehen wir später noch genauer ein.
main.cpp
123456789101112#include <iostream> // Non-type parameter means we won't use typename // Instead you can use an actual type for it template<int N> void PrintValue() { std::cout << N << std::endl; } int main() { // Call the template function with a literal integer PrintValue<5>(); // 5 }
Der Hauptvorteil dieses Ansatzes besteht darin, dass alle Berechnungen zur Kompilierzeit durchgeführt werden, was den Einsatz im Metaprogrammieren ermöglicht.
main.cpp
1234567891011#include <iostream> // Template function to calculate the square of a non-type parameter I template<int I> int Square() { return I * I; } // Return the square of I int main() { // The result of Square<5>() is computed at compile time int b = Square<5>(); // b will be initialized to 25 }
Beim Ausführen des kompilierten Programms hat b bereits den Wert 25. Die Berechnung erfolgt zur Kompilierzeit, was zu null Laufzeitoperationen führt.
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen