'<<' をオーバーロードしようとしたとき演算子をテンプレート クラス 'Pair' のフレンドとして使用すると、コンパイラ警告が発生する可能性があります。このメッセージは、テンプレート関数宣言以外の問題についてプログラマに警告します。
演算子を適切にオーバーロードするには、フレンド宣言を次のように変更する必要があります。
friend ostream& operator<< <> (ostream&, Pair&); テンプレート引数を空のままにしておきます。 '<>' 内で、コンパイラはパラメータ リストを推論して、テンプレートの特定の特殊化を識別できます。
警告を完全に排除するには、'operator<<' の宣言を使用します。
templateclass Pair; template ostream& operator<<(ostream& out, Pair & v); // Template definition of 'Pair' この改訂された構文に従うことで、コンパイラはフレンド宣言をテンプレートの特殊化として認識し、'< をオーバーロードできます。 <'
以上がテンプレート クラス \'Pair\' のフレンドとして \'<<\' 演算子をオーバーロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。