S
Shao Miller
A quick, slightly off-topic note: Although lvalue conversion and array
decay are right next to each other in the Standard, GCC's 'typeof'
keyword seems to treat them differently.
const sometype foo1;
/* bar1 is 'const sometype' */
typeof (foo1) bar1;
/* baz1 is 'const sometype' instead of 'sometype' */
typeof (0, foo1) baz1;
sometype foo2[42];
/* bar2 is 'sometype[42]' */
typeof (foo2) bar2;
/* baz2 is 'sometype *' */
typeof (0, foo2) baz2;
Weird.
decay are right next to each other in the Standard, GCC's 'typeof'
keyword seems to treat them differently.
const sometype foo1;
/* bar1 is 'const sometype' */
typeof (foo1) bar1;
/* baz1 is 'const sometype' instead of 'sometype' */
typeof (0, foo1) baz1;
sometype foo2[42];
/* bar2 is 'sometype[42]' */
typeof (foo2) bar2;
/* baz2 is 'sometype *' */
typeof (0, foo2) baz2;
Weird.