Esempio

In questo esempio, si hanno due funzioni denominate foo che si sovrappongono l'una all'altra. Ciò può causare un comportamento imprevisto.

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

Soluzione

La soluzione consiste nello scrivere funzioni specializzate, come dimostrato nell'esempio seguente, o utilizzare modelli di funzioni specializzate che rimuovono qualsiasi ambiguità dal codice.

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