Příklad

V tomto příkladu máme 2 funkce pojmenované foo , které přetěžují jedna druhou. Může to způsobit neočekávané chování.

template<class T> class MyClass {
   public:
      int foo(T type);
      int foo(int b);
};

Řešení

Řešením je buď napsat specializované funkce, jak ukazuje níže uvedený příklad, nebo použít šablony specializovaných funkcí, které odeberou dvojznačnost z kódu.

template<class T> class MyClass {
   public:
      int fncType(T type);
      int fncInt(int b);
};