So I'm interacting with C (although it works the same in D), I call a
function that returns a pointer, and gives the size through an out arg:
ubyte* test(size_t* ptr)
{
*ptr = 100;
return cast(ubyte*)1234;
}And call it, but immediately use the size argument to slice a range: size_t size; ubyte[] t = test(&size)[0..size]; t is null. If I do this, it works: size_t size; ubyte* pt = test(&size); ubyte[] t = pt[0..size]; Why should I need that extra line?
