struct S {
union {
T1 t1;
T2 t2;
}
T3 t3;
}
T1 a1;
T3 a3;
S(a1, a3);
This is erroring because t1 is set twice. It turns out that the
second parameter of the struct map to t2 rather than t3.
This behavior do not make any sense, ever. Why is that the
default ?