float[] buf = [ 1.1f, 2.2, 3.3, 4.4, 5.5 ];
auto a = getTypedArray!float( 2, cast(void*)(buf.ptr + 1) );
assertEq( a, [2.2, 3.3] );
a[0] = 10;
a[1] = 12;
assertEq( buf, [1.1, 10, 12, 4.4, 5.5] );
ubyte[] buf = [ 1, 2, 3, 4 ];
auto a = getTypedArray!void( 4, cast(void*)buf );
assertEq( cast(ubyte[])a, buf );
static struct TT { ubyte val; }
ubyte[] fnc( in TT[] data ) pure
{ return getTypedArray!ubyte( data.length, data.ptr ).arr.dup; }
auto tt = [ TT(0), TT(1), TT(3) ];
assertEq( fnc( tt ), cast(ubyte[])[0,1,3] );