если у меня есть функция шаблона:
template<class T, class S>
void foo(T t, S s){..//do something//}
, а затем внутри основного я делаю это:
string str = "something";
char* ch = "somthingelse";
double num = 1.5;
foo(ch, num);
foo(num, ch);
foo(str, num);
..
Мой вопрос в компиляции, какой код будет написан висполняемый файл?это будет:
foo<char*, double>(..);
foo<double, char*>(..);
foo<string, double>(..);
или компиляция узнает при втором вызове foo, чтобы изменить место классов.или в третьем неявным образом использовать char * для создания строкового класса?