static assert( canUseAsArray!(int[]) ); static assert( canUseAsArray!(int[3]) ); static assert( canUseAsArray!(float[]) ); static struct Vec0 { float[] data; alias data this; } static assert( canUseAsArray!Vec0 ); static struct Vec1 { float[] data; } static assert( !canUseAsArray!Vec1 ); static struct Vec2 { float[3] data; alias data this; } static assert( canUseAsArray!Vec2 ); static assert( !canUseAsArray!(string) ); static assert( !canUseAsArray!(wstring) ); static assert( !canUseAsArray!int ); static assert( !canUseAsArray!float ); static assert( !canUseAsArray!(immutable(void)[]) );