Я сделал очень простую программу для понимания функциональных шаблонов с несколькими параметрами, но я продолжаю получать это сообщение об ошибке от компилятора. Я просмотрел программу несколько раз, но я не могу понять, откуда эта проблема. Я бы очень признателен за понимание.Шаблоны функций Ошибка компилятора
#include <iostream>
using namespace std;
template <class FIRST, class SECOND>
FIRST smaller(FIRST a, SECOND b)
{
return (a<b?a:b);
}
int main()
{
int x = 21;
double y = 12.2;
cout << smaller(x,y) << endl;
}
Компилятор сообщение об ошибке:
В функции `ПЕРВОЕ меньше (первый, второй) [с FIRST = INT, ВТОРОЕ = двойной]:
инстанцирован здесь
[предупреждение] преобразование в 'int' из 'double'
компилятор дает a.clear диагностики. –
BTW: Доступно уже 'std :: min()', делая это правильно ... –
@ πάνταῥεῖ std :: min ожидает аргументы одного типа –