What is the difference between the two array assignments, one inside a struct and one outside a struct?
struct A
{
char s[4];
};
int main(int argc, char *argv[])
{
char s[4];
char d[4];
d = s; // 'invalid array assignment'
A a, b;
b = a; // compiles without problems
return 0;
}
The default operator =
is supposed to invoke member-by-member assignment operators. If so, then there should exist an array assignment operator, but the compiler does not want to invoke it explicitly. Why?