C++ Я видел этот код в интернете:Почему эта функция шаблона не будет скомпилирована
template <class T, class S>
T f(T& a, T& b, S c) {
T t1, t2, t3;
if (a==b) return t1;
if (c>0) return t2;
return t3;
}
СЛЕДОВАЛ эти вызовы:
f('c', 5, 5); // why this doesn't compile?
f(3, 4, 6.0); // why does this compile?
Первый не компилируется, а второй .. Почему?
@RSahu yup, под редакцией. –
Вы уверены, что хотите использовать ссылку при передаче в литерал? – Matt
Спецификация шаблона предполагает, что параметры 'a' и' b' должны быть одного типа. Они не в первом, но они во втором. – andand