Is this legal C++?
struct foo
{
int a[100];
int b[sizeof(a) / sizeof(a[0])];
};
GCC 4.6 accepts it, but MSVC 2012 doesn't. It seems like it should be fine to me, but a bit of Googling didn't help and I don't know where to look in the standard.
MSVC 2012 gives the following output:
error C2327: 'foo::a' : is not a type name, static, or enumerator
error C2065: 'a' : undeclared identifier
error C2070: ''unknown-type'': illegal sizeof operand
warning C4200: nonstandard extension used : zero-sized array in struct/union