オーバーロードされた << 演算子テンプレートを特殊化するのに問題があります:
一般的なテンプレートは次のように定義されています。
template<typename DocIdType,typename DocType>
std::ostream & operator << (std::ostream & os,
const Document<DocIdType,DocType> & doc)
{
[...]
}
一般的なテンプレートは正常に機能します。次に、2 番目のテンプレート パラメーターを特殊化します。私はもう試した:
template<typename DocIdType>
std::ostream & operator << <DocIdType,std::string> (std::ostream & os,
const Document<DocIdType,std::string> & doc)
{
[...]
}
このコードをコンパイルしようとすると、「C2768: 明示的なテンプレート引数の不正な使用」というコンパイラ エラーが発生します。
誰かが私が間違っていることを教えてもらえますか?