اگه شما هم همچین مشکلی رو دارید بیخود زور نزنید بعید میدونم بشه. ولی یک راه حل مشابه استفاده از تابع هست :
typedef struct FLOAT2
{
public:
FLOAT2() {};
float x, y;
} * PFLOAT2;

typedef struct FLOAT4
{
public:
float f[4];
FLOAT2 & v1() { return *(FLOAT2 *)&f[0]; };
FLOAT2 & v2() { return *(FLOAT2 *)&f[2]; };
} *PFLOAT4;