Paramètres de Modèle Non-Typiques
Lors de la définition d'un modèle, nous pouvons non seulement spécifier des types, mais aussi passer des valeurs à ces types. Cela signifie que nous pouvons créer des modèles qui se comportent différemment 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 lors de 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é lors de la compilation, ce qui entraîne zéro opérations à l'exécution.
Swipe to start coding
Complétez la fonction template et trouvez la somme des variables options et operations.
- Complétez la fonction template.
- Changez le type des variables
options
etoperations
pour pouvoir les passer en tant que paramètres de template.
Solution
solution.cpp
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
Résumer ce chapitre
Expliquer le code dans file
Expliquer pourquoi file ne résout pas la tâche
Awesome!
Completion rate improved to 5.88
Paramètres de Modèle Non-Typiques
Glissez pour afficher le menu
Lors de la définition d'un modèle, nous pouvons non seulement spécifier des types, mais aussi passer des valeurs à ces types. Cela signifie que nous pouvons créer des modèles qui se comportent différemment 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 lors de 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é lors de la compilation, ce qui entraîne zéro opérations à l'exécution.
Swipe to start coding
Complétez la fonction template et trouvez la somme des variables options et operations.
- Complétez la fonction template.
- Changez le type des variables
options
etoperations
pour pouvoir les passer en tant que paramètres de template.
Solution
solution.cpp
Merci pour vos commentaires !
Awesome!
Completion rate improved to 5.88single