Conversation
How often do you really need swizzles to be lvalues? What exactly would you expect &foo.zyx to mean? most common would be assignment of a single component eg foo.z = 0. Expect same semantics as shading languages! :) Most code only needs single-component lvalues and strict-prefix rvalues (xy, xyz, ...). Latter also handled by downcast constructors. Remaining cases add language complexity for a surprisingly small number of uses (in code I've surveyed). &foo.zyx can't occur in current shaders: no pointers. Problem is it can't possibly be a float3* - wrong layout/order in mem.