Seksjon 2. Kapittel 3
single
Ikke-type Malparametere
Sveip for å vise menyen
Når vi definerer en mal, kan vi ikke bare angi typer, men også sende verdier til disse typene. Dette betyr at vi kan lage maler som oppfører seg forskjellig basert på de oppgitte verdiene, men vi kommer tilbake til dette litt senere.
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 }
Hovedfordelen med denne tilnærmingen er at alle beregninger utføres under kompilering, noe som muliggjør bruk i metaprogrammering.
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 }
Når du kjører det kompilerte programmet, vil verdien av b allerede være 25. Beregningen utføres under kompilering, noe som gir null operasjoner ved kjøretid.
Alt var klart?
Takk for tilbakemeldingene dine!
Seksjon 2. Kapittel 3
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår