ホームページ  >  記事  >  バックエンド開発  >  テンプレート クラス \'Pair\' のフレンドとして \'<<\' 演算子をオーバーロードするにはどうすればよいですか?

テンプレート クラス \'Pair\' のフレンドとして \'<<\' 演算子をオーバーロードするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 23:18:28971ブラウズ

How to Overload the '<<' Operator as a Friend for Template Class 'Pair'?

演算子 '<<' をオーバーロードしていますテンプレート クラス 'Pair' のフレンドとして

'<<' をオーバーロードしようとしたとき演算子をテンプレート クラス 'Pair' のフレンドとして使用すると、コンパイラ警告が発生する可能性があります。このメッセージは、テンプレート関数宣言以外の問題についてプログラマに警告します。

演算子を適切にオーバーロードするには、フレンド宣言を次のように変更する必要があります。

friend ostream& operator<< <> (ostream&, Pair&);

テンプレート引数を空のままにしておきます。 '<>' 内で、コンパイラはパラメータ リストを推論して、テンプレートの特定の特殊化を識別できます。

警告を完全に排除するには、'operator<<' の宣言を使用します。

template  class Pair;

template 
ostream& operator<<(ostream& out, Pair& v);

// Template definition of 'Pair'

この改訂された構文に従うことで、コンパイラはフレンド宣言をテンプレートの特殊化として認識し、'< をオーバーロードできます。 <'

以上がテンプレート クラス \'Pair\' のフレンドとして \'<<\' 演算子をオーバーロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。