問題タブ [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++ - 1つのVS2010バグ?警告なしで右辺値への非定数参照のバインドを許可しますか?
- GCCは、コンパイルエラーを発生させるのに適しています。
std::string&
一時型の型から非定数型の参照の初期化が無効です。std::string
- VS2008は、少なくともコンパイル警告を出すのでそれほど悪くはありません:警告C4239:使用される非標準拡張:'初期化':から
std::string
へstd::string &
の変換非定数参照は左辺値にのみバインドできます - ここに問題のあるものがあります-VS2010(SP1)はエラーや警告なしで正常に完了します、なぜ?? !! VS2010の右辺値参照を使用して右辺値とバインドできることは知っていますが、使用していません。
&&
代わりに、デモコードでは、非定数左辺値参照を使用していました。
誰かがここでVS2010の動作を説明するのを手伝ってくれますか?バグですか!?ありがとう
c++ - 変更可能な左辺値への変更可能な右辺値参照のバインド
3 つの質問があります。
左辺値を右辺値参照に直接バインドできますか?
であるオブジェクトはどうなります
std::move()
か?std::move と の違いは何
std::forward
ですか?
c++ - 右辺値にアドレスがないのはなぜですか?
右辺値にメモリアドレスがないのはなぜですか? プログラムの実行時に RAM にロードされませんか、それともプロセッサ レジスタに格納された値を参照しますか?
c++ - 配列または関数の左辺値を右辺値に変換できますか?
C ++ Standard 2003によると:
配列と関数を右辺値に変換できないとはどういう意味ですか?
perl - l/rvalue 演算子と if ステートメントのコードを削減するために、Perl ではどのような構文糖衣が利用できますか?
Perl は非常に甘美な言語であるため、世の中にはたくさんありますが、どの言語でも最もよく使用されるステートメントは、if ステートメントと設定値の組み合わせです。それらの多くを見つけたと思いますが、まだいくつかのギャップがあります。最終的には、変数名を複数回記述する必要がないようにすることが目標です。
これが私がこれまでに持っているものです:
「秘密のオペレーター」に関する非常に興味深い記事もありました。
ただし、リストにないことがわかったのは次のとおりです。
他に追加する価値のあるものはありますか?コードを削減するために利用できるその他の条件付きセット変数は何ですか? 他に何が欠けていますか?
c++ - ラムダからオブジェクト/右辺値refを返すための推奨形式
移動セマンティクスを実装するクラスがある場合:
ラムダでBigObjectを返す正しい方法は何ですか?
また
また
または他の形式?
ありがとう。
c++ - 関数の戻り値はデフォルトで定数(右辺値)ですか?
私は右辺値参照について学んでいます、そしてチュートリアルは私にこれを教えてくれました:
むしろ明らかに、xと一時的なものの間でリソースポインタ(ハンドル)を交換し、一時的なもののデストラクタにxの元のリソースを破壊させることは、問題なく、はるかに効率的です。
言い換えると、代入の右側が右辺値である特別な場合では、コピー代入演算子をこのように動作させる必要があります。
それで、これは、関数からの戻り値がデフォルトで常に一定であり、それによって右辺値であることを意味しますか?はいの場合:それらは常に一定ですか、それとも例外がありますか?
c++ - 左辺値から右辺値への変換は行われますか?
C ++標準(4/5)単項&演算子のオペランドでは、左辺値から右辺値への変換は行われません。
例えば:
上記の場合、両方の左辺値p
はありますか?&x
または適切な例は何でしょうか?
編集:
これはどうですか?
このステートメントには変換がないことは確かですが、&operatorがこれにどのように関与するのか混乱していますか?
c - Cでの左辺値、右辺値、および配列の初期化
配列を定義できること例:
は非常に便利ですが、配列aはr値であるため、後でaの値を変更することはできません。
これを実行したいコンテキストは、関数に配列をフィードして出力をテストする一連の単体テストを作成することです。異なる入力を使用して同じ関数でテストを実行しており、入力配列に一意の名前を付ける必要がないようにしたいと考えています。たとえば、次のようにする必要があります。
また、配列へのポインタを関数に渡したい場合は、最初に次のようにキャストする必要があります。
このようにr値へのポインタを渡すことは機能しません:
私の質問は、これらの制限に悩まされることなく、値の配列を簡単に初期化する他の方法があるかどうかです。(特に、各テストに一意の配列名のセットがなくても、多くの同様の単体テストを簡単に記述できるようにするため)
c++ - C ++での型キャストと参照
次の呼び出しと対応する関数を見てください。
writePage は次のように宣言されます。
writePage は長い参照と char* 参照を受け入れます。上記はコンパイルされません。次のエラーが表示されます
誰でも私を助けてくれますか、これを処理する方法...タイプキャストが問題を解決しており、次のようにするとコードがコンパイルされます:
問題はどのように解決できますか??