問題タブ [rvalue]
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++ - std::streams は既に移動可能ですか?
GNU gcc 4.3 は、今後の c++0x 標準を部分的にサポートします。実装された機能の中には、右辺値参照があります。右辺値参照を使用すると、コピー不可能なオブジェクトを移動したり、関数からオブジェクトを返したりすることが可能になります。
std::streamsは右辺値参照によって既に移動可能ですか、それとも現在のライブラリの実装には何かが欠けていますか?
c++ - なぜ ++i は左辺値と見なされますが、i++ はそうではありませんか?
++i が左辺値であり、i++ でないのはなぜですか?
c++ - C++0x の右辺値参照がデフォルトではないのはなぜですか?
今後の C++ 標準である C++0x の優れた新機能の 1 つは、「右辺値参照」です。右辺値参照は、左辺値 (通常の) 参照に似ていますが、一時的な値にバインドできる点が異なります (通常、一時値はconst
参照にのみバインドできます)。
では、通常の参照の制限を削除して一時的にバインドできるようにするのではなく、まったく新しい型を発明したのはなぜでしょうか?
c++ - 一部の C++ コンパイラでリテラルのアドレスを取得できるのはなぜですか?
私が名前を挙げない C++ コンパイラでは、int *p = &42; というリテラルのアドレスを取得できます。
明らかに 42 は右辺値であり、ほとんどのコンパイラはこれを拒否しています。
なぜコンパイラはこれを許可するのでしょうか? 自分の足を撃つ以外に、これで何ができますか?
c++ - 左辺値参照への一時的なバインド
次のコードがあります
three()をmutateメソッドに渡していることがわかります。このコードはうまくコンパイルされます。私の理解では、一時変数を非 const 参照に割り当てることはできません。はいの場合、このプログラムはどのようにコンパイルされていますか?
何かご意見は?
編集:
試したコンパイラ: VS 2008 および VS2010 Beta
c++ - 「l値が必要です」エラー
C ++プログラムのコンパイル中に「l-valuerequired」エラーが発生するのはいつですか?(VC ++を使用しています)
c - 右辺値は c のどこに格納されていますか?
Cには、次のコードがあります:
質問したいのですが、(10+5-3) はどこに保存されていますか? (私が知る限り、a
はスタックにありますが、どう(10+5-3)
ですか?この右辺値はどのように計算されますか?)
c - リテラル文字列と関数の戻り値は左辺値ですか、それとも右辺値ですか?
リテラル文字列が左辺値なのか右辺値なのか疑問に思うだけです。他のリテラル (int、float、char など) は左辺値または右辺値ですか?
関数の戻り値は左辺値または右辺値ですか?
どうやって違いを見分けるのですか?
c++ - すべての一時的な値はC++にありますか?
私は過去数年間C++でコーディングしています。しかし、私が理解できなかった質問が1つあります。質問したいのですが、すべてC ++の一時的なものですか、右辺値ですか?
いいえの場合、コードで一時的に生成される値が左辺値である例を誰かに教えてもらえますか?
c++ - 非クラスの右辺値は常に cv 修飾されていない型を持ちます
§3.10 セクション 9 は、「非クラスの右辺値には常に cv 修飾されていない型がある」と述べています。それは私を驚かせました...
標準によると、非クラス型の const 右辺値などはありませんbar()
が、 にバインドすることを好みconst int&&
ます。これはコンパイラのバグですか?
EDIT:どうやら、this
const rvalueでもあります:)
編集: この問題は g++ 4.5.0 で修正されたようです。両方の行で "rvalue" が出力されるようになりました。