Шаблоны - Неоднозначный вызов перегруженной функции - C (СИ)
Формулировка задачи:
Сел за изучение шаблонов C++, немного почитал и решил попробовать на практике. Написал самый тривиальный пример
Но, к моему удивлению, он работать отказался. MVS 2008 и MVS 2010 выдали ошибки типа
потом я решил убрать строку
Ии... все заработало. Вопрос. Почему оно не может сопоставить типы при строке using namespace std; ?
#include<iostream> using namespace std; template< class T > T min ( T a, T b ) { return ( a < b ? a:b ); } int main() { int a=5, b=10; cout<<min( a, b ); system("pause"); return 0; }
1>f:шаблоны.cpp(13) : error C2668: min: неоднозначный вызов перегруженной функции f:шаблоны.cpp(5): может быть 'T min<int>(T,T)' with [ T=int ] f:\program files\microsoft visual studio 9.0\vc\include\xutility(3371): или 'const _Ty &std::min<int>(const _Ty &,const _Ty &)' with [ _Ty=int ] при попытке сопоставить список аргументов '(int, int)'
using namespace std;
Решение задачи: «Шаблоны - Неоднозначный вызов перегруженной функции»
textual
Листинг программы
using std::cout; using std::cin; using std::endl;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д