Шаблоны C ++, сталкивающиеся с проблемой несоответствия перегрузки. Что не так в коде?

0
#include <iostream>
using namespace std;

template<class T>
inline void swap(T &i,T &j)
{
  T temp = i;
  i=j;
  j=temp;
}

int main ()
{
  int a = 2,b =5;
  swap(a,b);
  cout << "a=" <<a<< " b=" <<b<<endl;
  return 0;
}

Это простая программа обмена с использованием шаблонов. Я новичок в шаблонах и хотел узнать, как его использовать.

  • 0
    Попробуйте переименовать ваш метод myswap() и небо снова станет синим;) ...
  • 0
    Спасибо за комментарий. Я изменил имя функции, и это сработало. Но знание точного вопроса было важнее, и спасибо за то, что поделились.
Показать ещё 1 комментарий
Теги:
templates

1 ответ

1

using namespace std является проблемой. Существует функция std::swap(), из-за чего вызов функции становится неоднозначным.

  • 0
    ... и это, вероятно, будет введено из #include <iostream> !
  • 0
    Большое спасибо за помощь. Это была действительно проблема. Поэтому я изменил имя функции, и это сработало.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню