xxxxxxxxxx
import std.stdio;
struct V4_UDA(T) {
enum N = 4;
union {
"BRAKE_ME") T[N] v = 0; (
struct { T x, y, z, w; }
}
this(T vx, T vy, T vz, T vw) {
x = vx; y = vy; z = vz; w = vw;
}
}
struct V4_NO_UDA(T) {
enum N = 4;
union {
T[N] v = 0;
struct { T x, y, z, w; }
}
this(T vx, T vy, T vz, T vw) {
x = vx; y = vy; z = vz; w = vw;
}
}
alias v4_broken = V4_UDA!(float);
alias v4_good = V4_NO_UDA!(float);
struct OMG {
v4_good ok = v4_good(1.0f, 2.0f, 3.0f, 4.0f);
v4_broken broken = v4_broken(1.0f, 2.0f, 3.0f, 4.0f);
}
void main()
{
OMG omg;
writeln(omg.ok.v, "OK");
writeln(omg.broken.v, "!!!");
}