問題タブ [lvalue]
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 ++での型キャストと参照
次の呼び出しと対応する関数を見てください。
writePage は次のように宣言されます。
writePage は長い参照と char* 参照を受け入れます。上記はコンパイルされません。次のエラーが表示されます
誰でも私を助けてくれますか、これを処理する方法...タイプキャストが問題を解決しており、次のようにするとコードがコンパイルされます:
問題はどのように解決できますか??
c++ - '?:' (三項条件演算子) の戻り型
最初に参照を返すのはなぜですか?
2番目はそうではありませんが?
実際、2番目はまったくコンパイルされませんでした-「代入の左辺値ではありません」。
c++ - RValuesは何で構成されていますか?
RValueはメモリの操作可能な領域ではないため、整数などのリテラルはRValueと見なされます。
- 定数はRValueを構成しますか?
const int x = 0;
少なくとも1回は操作可能です。 - 現在、コンパイラーによって作成された一時オブジェクトは、操作可能なメモリー領域がある場合でもRValuesです。どうしてこんなことに?
「ユーザー」が変更できないので?これが理由ですか?
それで、「ユーザー」が操作できないメモリ領域はRValueと呼ばれますか?
antlr - ANTLR文法および構文述語での左辺値の認識
私はD用のANTLRを使用してパーサーを実装しています。この言語はCに基づいているため、宣言と式にはあいまいさがあります。このことを考慮:
2番目の例は代入式の右側にしか表示されないため、次のスニペットを使用してこの問題を解決しようとしました。
私の理解では、これであいまいさを回避するためのトリックが実行されるはずですが、テストは失敗しています。ルールassignOrConditionalから始めて、インタプリタに入力をフィードすると、NoViableAltExceptionで失敗します。入力は
おそらく私は述語がどのように機能しているかを誤解しているので、誰かが私の説明をコードに修正できれば素晴らしいでしょう:入力がpostfixExpressionとして読み取れる場合、postfixExpressionの後の次のトークンが割り当て演算子の1つであるかどうかをチェックしますそうである場合は、ルールをassignmentExpressionとして解析します。(assignmentExpressionとconditionalExpressionが適切に機能することに注意してください)。次のトークンがそれらのものでない場合、それはそれをconditionalExpressionとして解析しようとします。
編集 [解決済み]このソリューションには、私が気付く可能性のある別の問題があります。assignmentExpressionは、チェーンされている場合、右側の式で再び代入を選択する必要があります(つまり、後置と代入演算子が続きます)。
私の理解の何が問題になっているのか分かりますか?
c++ - 「割り当ての左オペランドとして必要な左辺値」が奇妙な場所にある - C++
注: これは、タイトルにこの名前が付けられた 10 億と 1 つの質問の複製ではありません。=
これは、 の代わりに偶発的なものではなく、ポインターと非常に奇妙なものに関係しています==
。
void*
という引数を持つ C++ 関数がありますout
。私はこの行を持っています:
のどこsize
にuint32_t*
. コンパイラは不平を言います:
なにが問題ですか?
c++ - behaviour of const_cast
I was reading about const_cast operator in c++
1.First weird thing thing i can't understand is
const_cast operator syntax i.e.
-const_cast--<--Type-->--(--expression--)--------------------><
what i have understand about this syntax is that it helps to cast away constness of anexpression
of type Type
.But consider this code
Here in line ConstTest *c = const_cast<ConstTest*>(this)
, I think that the const of this
pointer should be cast away, but the output shows that it is the object which this
refers to that loses its const-ness.
I feel that the code should have been ConstTest *c = const_cast<ConstTest>(*this)
, but this produces an error. I know i am wrong at many interpretations. Please correct them all.
2.my second problem is the statement given below
The result of a const_cast expression is an rvalue unless Type is a reference type. In this case, the result is an lvalue.
Why is this so, and why it is not true in case of pointers?
function - 割り当ての左オペランドとして左辺値が必要です (「use ==」ではありません)
関数ポインターを割り当てようとすると、左辺値オペランドの問題が発生します。問題の正確な場所はわかりませんが、その特定の問題に関係するすべてのコードを提供します。
どんな助けでも素晴らしいでしょう。
c - 異なる型の変数のメモリ アドレスの確認と比較
メモリ内の 2 つの変数のアドレスを比較しようとしています。
以下は、chunk_t のプロトタイプです。
「単項 '&' オペランドとして左辺値が必要」という if ステートメントでコンパイラ エラーが発生します。
int old_chunk->size と chunk_t old_chunk を追加していたからだと思ったので、if 文で old_chunk->size を chunk_t として型変換すると、コンパイラから「非スカラー型への変換が要求されました」と言われました。
ios - iOS の代入の左オペランドとして必要な左辺値
これが私のコードです
X は double の配列
ありがとう