Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Nicht-Typ-Template-Parameter | Templates Usage
C++-Templates
Abschnitt 2. Kapitel 3
single

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

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

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.

question mark

Was ist ein wesentlicher Vorteil der Verwendung von nicht-typisierten Template-Parametern in C++-Templates?

Wählen Sie die richtige Antwort aus

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt