single
Paramètres de Modèle Non Typés
Glissez pour afficher le menu
Lors de la définition d'un template, il est possible de spécifier non seulement des types, mais aussi de transmettre des valeurs à ces types. Cela permet de créer des templates dont le comportement varie en fonction des valeurs fournies, mais nous y reviendrons un peu plus tard.
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 }
L'avantage principal de cette approche est que tous les calculs sont effectués à la compilation, ce qui permet son utilisation en métaprogrammation.
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 }
Lorsque vous exécutez le programme compilé, la valeur de b sera déjà 25. Le calcul est effectué à la compilation, ce qui entraîne zéro opération à l'exécution.
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion