int main() {
int a[10], b[10];
a = b;
}
prog.cpp: In function ‘int main()’:
prog.cpp:3:7: error: invalid array assignment
a = b;
^
Почему компилятор выдаёт эту ошибку? Стандарт говорит:
http://eel.is/c++draft/expr.ass#1
The assignment operator (=) and the compound assignment operators all group right-to-left. All require a modifiable lvalue as their left operand;
Может, тут не modifiable lvalue? Да вроде нет:
http://eel.is/c++draft/basic.lval#def:modifiable
An lvalue is modifiable unless its type is const-qualified or is a function type.
Так в чём проблема? Почему компилятор выдаёт ошибку, а не делает то, что велит стандарт:
http://eel.is/c++draft/expr.ass#2
In simple assignment (=), the value of the expression replaces that of the object referred to by the left operand.