C++ 0x rvalue参照がデフォルトでないのはなぜですか?

C++ 0x rvalue参照がデフォルトでないのはなぜですか?

今後のC++標準のC++の新機能のうちの1つは、「rvalue references」です。 rvalue参照は、一時値にバインドできる点を除いてlvalue(normal)参照と似ています(通常、一時参照はconst参照にのみバインドできます)。 void FunctionWithLValueRef(int& a){...} void FunctionWithRValueRef(int&…


c++ - 一時オブジェクトの作成を許可しない

マルチスレッドアプリケーションでクラッシュをデバッグしている間に、私はついにこのステートメントで問題を突き止めました: CSingleLock(&m_criticalSection, TRUE); CSingleLockクラスの名前のないオブジェクトを作成しているので、クリティカルセクションオブジェクトはこのステートメントの直後にロック解除されます。 これは明らかにコーダが望んでいたもので…


c++ - rvalue参照でより効率的に戻っていますか?

例えば: Beta_ab&& Beta::toAB() const{return move(Beta_ab(1, 1));}…


c - リテラル文字列と関数戻り値は左辺値または右辺値ですか?

リテラル文字列が左辺値または右辺値かどうか疑問に思うだけです。 他のリテラル(int、float、charなど)は左辺値または右辺値ですか? 関数の戻り値は左辺値または右辺値ですか? 違いをどうやって伝えますか?…


すべての一時変数はC++で右辺値ですか?

私は過去数年間C++でコーディングしてきました。 しかし、私が把握できなかった1つの質問があります。 私は質問したい、すべての一時的なC++で、rvaluesですか? いいえ、誰でも私にコードの中で生成された一時的な値が左辺値である例を提供できますか?…


c++ - rvalue構造体のメンバは右辺値または左辺値ですか?

構造体を返す関数呼び出しは右辺式ですが、そのメンバはどうですか? このコードは私のg++​​コンパイラではうまくいきますが、gccは "左辺のオペランドとして必要な左辺値"というエラーを出します: struct A{int v;}; struct A fun(){struct A tmp; return tmp;}int main(){f…


c++ - 一時オブジェクトのアドレスを取得する

§5.3.1単項演算子、第3章 単項演算子&演算子の結果は、そのオペランドへのポインタです。 オペランドは左辺値または修飾IDです。 この文脈で「何か」とは何を意味するのですか? 一時的なアドレスを取得するのがエラーであることを意味しますか? 私が思っていたのは、g++が警告を出すのに対し、comauは次のプログラムをコンパイルすることを拒否していたからです。#include<st…


C++:一時的な議論の寿命?

MyClass新しいインスタンスを次のような関数の引数として作成する場合: class MyClass{MyClass(int a);}; myFunction(MyClass(42)); スタンダードはデストラクタのタイミングに何人かの受領者を作るのですか? 具体的には、 myFunction()呼び出し後に次の文の前に呼び出されると仮定できますか?…


新しいc++ 0x rvalue参照演算子のオーバーロードを追加する際の冗長コードの削減方法

私は新しいオペレータのオーバーロードを追加して、C++ 0x rvalueの参照を利用しています。私はたくさんの冗長コードを生成しているように感じます。 私はクラス、 treeを持っています。それは二重値の代数演算のツリーを保持しています。 使用例の例を次に示します。 tree x=1.23; tree y=8.19; tree z=(x+y)/67.31-3.15*y;…



c++ - 移動セマンティクスとは何ですか?

私はちょうどC++0xに関するScott Meyersとのソフトウェアエンジニアリングラジオポッドキャストインタビューを聞いて終了しました。 新機能のほとんどは私にとって意味をなさないものでしたが、実際にはC++ 0xには興奮しています。 私はまだ移動セマンティクスを取得していない...彼らは正確に何ですか?…




move 参照 forward rvalue 右辺 ユニバーサル参照 return std reference 寿命