このサンプルには、
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); }; |