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.

questionAnswers(5)

yourAnswerToTheQuestion