このようなメンバー関数テンプレートの特殊化を作成したいクラスを書いています
namespace aha
{
class Foo
{
public:
template < typename T >
T To() const
{
// some code here
}
};
template <>
bool Foo::To < bool > () const
{
// some other code here
}
}
gccはエラーを出します:
インスタンス化後の「To<bool>」の明示的なインスタンス化
私のライブラリのユーザーが次のFoo
ような異なるデータ型に変換しながら同じ関数を取得できるように、メンバー関数のテンプレート特殊化のみでそれを実行したいと思います。
Foo obj;
bool b( obj.To < std::string > () );
int i( obj.To < int > () );
float f( obj.To < float > () );
等々。
コードで何が間違っているのか教えてください。