Вот простой код в С++:
#include <iostream>
#include <typeinfo>
template<typename T>
void function()
{
std::cout << typeid(T).name() << std::endl;
}
int main()
{
function<int>();
function<double>();
return 0;
}
Я читал, что шаблоны в С++ - это функция времени компиляции, которая не похожа на генераторы в С#/Java.
Итак, как я понял, компилятор С++ делит одну определенную функцию на различные числа (зависит от количества вызовов с разными типами) функций.
Я прав, или нет? Я не эксперт в компиляторах на С++, поэтому я прошу вас посоветоваться.
Если мое предложение о выходе компилятора верное, я хочу знать, могу ли я описать вышеописанный код как статический полиморфизм?
Потому что это, кажется, не переопределяет, а просто вызывает копию из исполняемого файла или... не имеет значения, что имеет приложение в выходном двоичном изображении, но только важная часть находится на уровне кода на С++, Посмотрите, как компилятор производит выход.