問題タブ [ref-qualifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - デストラクタが参照修飾子を持つことができないのはなぜですか?
次のコードが許可されていない理由 (標準がそう言っている以外) はありますか?
違法なのはわかっていますが、その理由を知りたいです。
私は古き良き名前のないインスタンスの問題を回避することについて考えていました。つまり、次のようなガードオブジェクトを使用する場合:
これは正当なコードですが、ロック ガードは一時的な (名前のない) オブジェクトであるため、構築直後に破棄されるため、明らかにエラーが発生しやすくなっています。
こんなことする予定だったのに
型が一時的なものとして構築されている場合は、コンパイラ エラーが発生します。
c++11 - ref修飾された型演算子による暗黙の変換によるgcc-9のバグ?
これを考慮してください:
以降:
これは と完全に連携しますgcc-8.3.0
が、gcc-9.3.0
と のすべてのバージョンではclang
、2 番目の呼び出しmsvc
に適切な選択ができません。ff
これはコンパイラのバグですか? コードは標準に従ってどのように動作する必要がありますか?
実際、両方の型演算子を for で呼び出すことができますMan&&
:
しかし、参照修飾のため、暗黙の変換中に 2 番目のものを選択する必要がありますよね?