On Thursday, 17 April 2014 at 12:59:20 UTC, Steven Schveighoffer wrote:
It was never possible. You must explicitly cast to void[].

void[] makes actually little sense as the result of whole-file read that allocates. byte[] is at least usable and more accurate. In fact, it's a little dangerous to use void[], since you could assign pointer-containing values to the void[] and it should be marked as NOSCAN (no pointers inside file data).

However, when using the more conventional read(void[]) makes a LOT of sense, since any T[] implicitly casts to void[].

-Steve

void[] will only make sense once you've accepted that "void.sizeof == 1".

Well, I guess "void[]" is C++'s "char*" for indiscriminate buffers. Speaking of which, does "void*" trigger strict aliasing in D? This subject seems like a hot potato no-one wants to touch.

Reply via email to