introspection: Make it compile with g++4.6

Old versions of g++ didn't support the C way of initialising a union:
  union {int i; char c[4];} u = {.i = 23};
instead they require
  union {int i; char c[4];} u;
  u.i = 23;
which however upsets gcc. #ifdef __cplusplus FTW! :/