В этом примере используются две функции с именем
foo,
которые перегружают друг друга. Это может вызвать непредвиденные
результаты.
template<class T> class MyClass { public: int foo(T type); int foo(int b); }; |
Создайте специализированные функции (см. следующий пример) или используйте шаблоны специализированных функций, удаляющие неоднозначные варианты из исходного кода.
template<class T> class MyClass { public: int fncType(T type); int fncInt(int b); }; |