В чем разница между вызовами A, B и C?Какая разница между вызовом шаблона?
#include <iostream>
using namespace std;
template<class T> T max(T a, T b) {
return (a >= b) ? a : b;
}
int main() {
float a = 4.0;
float b = 6.0f;
cout << max(a, b) << endl; //A
cout << max<double>(a, b) << endl; //B
cout << max<double>(4.0, 6.0f) << endl; //C
}
Те же вещи, за исключением возвращаемого значения и некоторого неявного преобразования (поплавка -> двойной) – Fefux
Это как вы узнали, что генерируется функция: Для функции добавьте следующую строку: 'станд :: соиЬ << (__PRETTY_FUNCTION__) << std :: endl; ' –