Exemple

Cet exemple illustre deux fonctions appelées foo qui se surchargent elles-mêmes. Ceci peut provoquer un comportement inattendu.

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

Solution

La solution consiste à écrire des fonctions spécialisées, comme illustré dans l'exemple ci-dessous, ou à utiliser les modèles de fonction spécialisée qui suppriment toute incohérence du code.

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