single
Parametri di Template Non di Tipo
Scorri per mostrare il menu
Quando si definisce un template, è possibile specificare non solo i tipi ma anche passare valori a questi tipi. Questo significa che si possono creare template che si comportano in modo diverso in base ai valori forniti, ma torneremo su questo argomento più avanti.
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 }
Il principale vantaggio di questo approccio è che tutti i calcoli vengono eseguiti in fase di compilazione, il che ne consente l'utilizzo nel metaprogramming.
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 }
Quando esegui il programma compilato, il valore di b sarà già 25. Il calcolo viene effettuato in fase di compilazione, risultando in zero operazioni a runtime.
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione