static assert( isPureData!int ); static assert( isPureData!float ); static assert( isPureData!creal ); static struct Vec { float x,y,z; } static assert( isPureData!Vec ); static struct Arr { int[3] data; } static assert( isPureData!Arr ); static struct Some { float f; Vec v; Arr a; } static assert( isPureData!Some ); static assert( !isPureData!string ); static struct Bad { int[] data; } static assert( !isPureData!Bad );
isn't array and has no unshared aliasings