悪であると言われているブール演算子をオーバーロードするライブラリ/コードを見たことがありますか? ユーザーにどのような利点がありますか?
4 に答える
標準ライブラリ自体がoperator !をオーバーロードしています。入力ストリームの場合、おそらく「悪」は強いですか?
しかし、あなたは&&と||について話していたと思います。. これらをオーバーロードしない理由は、それらの短絡能力をユーザー定義のオーバーロードで複製できないためです。また、それらをオーバーロードするライブラリを認識していません。
|| 誰かがやったことがあるかどうかはわかりませんが、|| 文字列連結としてORACLE SQLで使用されます。ここを参照してください:
http://www.java2s.com/Code/Oracle/Char-Functions/StringStringconcatenatestwostrings.htm
したがって、C++ でOracle SQL を模倣し、SQLString クラスを持つライブラリを作成しようとしている場合は、 || を使用すると思います。連結は正常と見なされます。
演算子 bool に注意する必要がある理由を説明した素晴らしい記事
http://www.artima.com/cppsource/safebool.html
ブーストには、演算子のオーバーロードのためのヘルパーがあります
この演算子をオーバーロードするときは、論理的に注意する必要があります。たとえば、something::operator != は ! と同じにする必要があります。何か::演算子 ==
ブール演算子のオーバーロードは、まさにそのために役立ちます-型をブール値のように動作させたい場合。
他の言語機能と同様に、利点と危険性があります。