https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89722
--- Comment #9 from Xavier <chantry.xavier at gmail dot com> --- We are compiling with -std=gnu++98 so decltype is not available there. And the "+ 0" trick does not seem to work correctly. % cat toto.c #include <stdio.h> int main(void) { char data[128]; printf("%ju\n", sizeof(typeof(*data))); printf("%ju\n", sizeof(typeof(*data + 0))); printf("%ju\n", sizeof(typeof((*data) + 0))); return 0; } % ./a.out 1 4 4 Do you have a solution that works with -std=gnu++98 ?