問題タブ [reference-binding]
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++ - const 参照は、一時的なダングリング参照からキャストされた別の参照にバインドされていますか?
以下はコード スニペットです。
このオンラインコンパイラでは、出力は
そのため、戻り値はcout
操作よりも早く破棄されるようです。したがって、instance
ぶら下がり参照のようです。
に変更const B& instance = (const B&)func();
する const B& instance =func();
と、結果は
補足として、vs2015でコードをテストすると、出力は最後のものです。ただし、gcc(4.6以前)でテストすると前者が出力され、4.6以降のバージョンでは後者が出力されます。だから私はオンラインコンパイラが間違っているのか、実際に参照がぶら下がっているのか知りたい.
c++ - 関数パラメーターとしての左辺値と右辺値
C ++でLvalueとRvalueを理解しようとしています。
そのため、関数に渡されるパラメーターとしてそれらを使用しています。この最初のケースでは 2 つの関数があり、最初の関数には const int への参照があります。この場合、「const」のおかげで (リンクを参照)、最初の関数に左辺値と右辺値の両方を渡すことができ、問題はありません。 . 代わりに 2 番目の関数で、Rvlaue を渡す義務があります。そうしないと、説明されているエラーが発生します。
わかった!
以下の例のように、2 番目の関数が関数テンプレートになると、左辺値も渡すことができます。