static assert( isPureType!int ); static assert( isPureType!(int[]) ); static assert( isPureType!float ); static assert( isPureType!(float[]) ); static struct Vec { float x,y,z; } static assert( isPureType!Vec ); static struct Arr { int[3] data; } static assert( isPureType!Arr ); static struct Some { float f; Vec v; Arr a; } static assert( isPureType!Some ); static assert( isPureType!string ); static assert( isPureType!(const(string)) ); static assert( isPureType!(string[]) ); static struct Bad { int[] data; } static assert( !isPureType!Bad );
if T is array returns isPureType!(ForeachType!T), if T isn't array returns isPureData!T