サンプル

このサンプルには、 foo という名前の互いに多重定義する 2 つの関数があります。これにより、予期しない振る舞いが発生する可能性があります。

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);
};