OK私が持っている:テンプレートの特殊化は
template<typename T>
class Reader
{
class Input
{
template<typename C>
void operator()(C& val) const
{
/* Do Some Work */
}
};
};
あいにくのジェネリック版私のために動作しません「いくつかの作業を行います」。また、重いテンプレートのメタプログラミングコードの途中にあるので、変更するのも簡単ではありません。
私は私のタイプのためのメソッドを特化することができますが、だから。だから私の第一歩は、一般的な方法をクラスから取り除くことでした。
template<typename T>
class Reader
{
class Input
{
template<typename C>
void operator()(C& val) const;
};
};
template<typename T>
template<typename C>
void typename Reader<T>::Input template operator()<C>(C& val) const // LINE 13
{
/* Do Some Work */
}
残念ながら、私はエラーを取得しています:
s.h:13: error: error: expected ‘)’ before ‘&’ token
入力はテンプレートクラスではありません。 –
@Peterありがとう。間違い:) –
ありがとうございます。あなたは正しいです、私は方法を専門にすることはできません。もう一度別の指先で作業する。ありがとう。 –