Nicht-Typ-Template-Parameter
Beim Definieren einer Vorlage können wir nicht nur Typen angeben, sondern auch Werte an diese Typen übergeben. Das bedeutet, dass wir Vorlagen erstellen können, die sich je nach den bereitgestellten Werten unterschiedlich verhalten, aber darauf werden wir später noch zurückkommen.
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 seine Verwendung in der Metaprogrammierung 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 }
Wenn Sie das kompilierte Programm ausführen, wird der Wert von b
bereits 25
sein. Die Berechnung wird zur Kompilierzeit durchgeführt, was zu null Laufzeitoperationen führt.
Swipe to start coding
Vervollständigen Sie die Vorlagenfunktion und finden Sie die Summe der Variablen options und operations.
- Vervollständigen Sie die Vorlagenfunktion.
- Ändern Sie den Typ der Variablen
options
undoperations
, um sie als Vorlagenparameter übergeben zu können.
Lösung
solution.cpp
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
Awesome!
Completion rate improved to 5.88
Nicht-Typ-Template-Parameter
Swipe um das Menü anzuzeigen
Beim Definieren einer Vorlage können wir nicht nur Typen angeben, sondern auch Werte an diese Typen übergeben. Das bedeutet, dass wir Vorlagen erstellen können, die sich je nach den bereitgestellten Werten unterschiedlich verhalten, aber darauf werden wir später noch zurückkommen.
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 seine Verwendung in der Metaprogrammierung 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 }
Wenn Sie das kompilierte Programm ausführen, wird der Wert von b
bereits 25
sein. Die Berechnung wird zur Kompilierzeit durchgeführt, was zu null Laufzeitoperationen führt.
Swipe to start coding
Vervollständigen Sie die Vorlagenfunktion und finden Sie die Summe der Variablen options und operations.
- Vervollständigen Sie die Vorlagenfunktion.
- Ändern Sie den Typ der Variablen
options
undoperations
, um sie als Vorlagenparameter übergeben zu können.
Lösung
solution.cpp
Danke für Ihr Feedback!
Awesome!
Completion rate improved to 5.88single