Edit: Following the comment, this is a working solution, but it requires alignment of your proxy types, which in my case can only be done with power-of-two values.
#define A(t) __declspec(align(t))
struct C
{
int a;
int b;
int c;
int junk;
};
A(16) struct D
{
int z;
};
A(16) struct DB {
int junk;
int z;
};
A(16) struct DC {
int junk[2];
int z;
};
typedef union
{
D da;
DB db;
DC dc;
} Ui;
typedef union
{
C c[50];
Ui d[50];
} U;
Original (incomplete) answer:
Each type is individually parsed and visualized. So when parsing each x element there's no way on storing that data for later aggregate of a,b and c.
You can however change your code such that an overlapping (union) type will exactly match your array. Then write separate visualizers for each type:
__decltypestruct C { int a,b,c; };
struct D { int a[10], b[10], c[10]; };
union {
C c[10];
D d;
};