Existe polimorfismo estático real em C ++?
Aqui está um código simples em C ++:
#include <iostream>
#include <typeinfo>
template<typename T>
void function()
{
std::cout << typeid(T).name() << std::endl;
}
int main()
{
function<int>();
function<double>();
return 0;
}
Eu li que os modelos em C ++ são umtempo de compilação , que não é como genéricos em C # / Java.
Pelo que entendi, o compilador C ++ dividirá uma única função definida em vários números (depende da contagem de chamadas com tipos diferentes) de funções.
Estou certo ou não? Não sou especialista em compiladores C ++, por isso estou pedindo um conselho a você.
Se minha sugestão sobre a saída do compilador estiver correta, quero saber se posso descrever o código acima comopolimorfismo estático?
Porque parece não substituir, mas apenas chamar uma cópia do executável ou ... não importa o que o aplicativo tenha na imagem binária de saída, mas apenas a parte importante está no nível de código C ++ e não devo olhar para como o compilador produz uma saída.