タグ付けされた質問 「rvalue」

2
ここで列挙型変数が右辺値になるのはなぜですか?
例: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } これをコンパイルすると、次のエラーが発生します。 <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type …

3
標準Cでは `(i)= 1`は違法ですか?
私はこの標準に従っているCコンパイラを書いており、次のようなステートメントを解析した場合: int i; (i) = 1; 私のコンパイラ(i)は、それが右辺値であり、割り当て可能であってはならないことを指摘するエラーを報告します。 コードとルールを確認したところ、次のことがわかりました:代入式のセマンティクス: 代入演算子は、左オペランドとして変更可能な左辺値を持つものとします。 割り当て式は、割り当て後に左のオペランドの値を持っていますが、左辺値ではありません。 私の場合は、2つの代入式があります (i) = 1し、i括弧インチ したがって、これは(i)右辺値である必要があります。 だから私の質問です:(i) = 1このC標準では 違法ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.