тор понимает, что вам нужна сп
Автор admin
Понедельник, 18 мая 2009 11:32
тор понимает, что вам нужна специализация min(), и генерирует ее автоматически. Типы должны совпадать, потому что шаблон изначально определялся с одним типовым аргументом, который применялся к обоим параметрам функции. К аргументам функций, тип которых определяется параметром шаблона, не применяются стандартные преобразования. Например, если вы захотите вычислить минимальное значение из int и double, следующая попытка вызова min() закончится неудачей: int z – min (х, j); // Переменная х типа double Поскольку х и j относятся к разным типам, компилятору не удается подобрать единый тип для параметра Т в определении min(), и вызов не соответствует объявлению шаблона. Проблема решается явным преобразованием одного аргумента к типу другого аргумента или полным уточнением синтаксиса: int z – min(x.j); Вы приказываете компилятору сгенерировать версию min() для double, после чего переменная j может быть преобразована в double по стандартным правилам (потому что тогда будет существовать функция min(const double&,const double&)). Возникает искушение определить min() с двумя аргументами, чтоб
Комментарии закрыты.
Последние комментарии