single
Parâmetros de Template Não-Tipo
Deslize para mostrar o menu
Ao definir um template, podemos não apenas especificar tipos, mas também passar valores para esses tipos. Isso significa que é possível criar templates que se comportam de maneira diferente com base nos valores fornecidos, mas retornaremos a esse assunto um pouco mais adiante.
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 }
A principal vantagem dessa abordagem é que todos os cálculos são realizados em tempo de compilação, o que possibilita seu uso em metaprogramação.
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 }
Ao executar o programa compilado, o valor de b já será 25. O cálculo é realizado em tempo de compilação, resultando em zero operações em tempo de execução.
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo