On Thu, 14 Oct 2010 01:57:56 +0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 10/13/10 16:32 CDT, Steven Schveighoffer wrote:
[snip]

All good points.

interface InputStream
{
// reads up to buffer.length bytes from a stream
// returns number of bytes read
// throws on error
size_t read(ubyte[] buffer);

// reads from current position
AsyncReadRequest readAsync(ubyte[] buffer, Mailbox* mailbox = null);
}

I'd say void[] is better here, since you aren't creating the buffer,
you're accepting it. Using ubyte makes for awkward casts when you are
reading binary data into specific structures.

ditto for OutputStream.

Well casting from void[] is equally awkward isn't it? I'm still undecided on which is better.


Andrei

I prefer ubyte[] because that helps GC (void arrays are scanned for pointers). Besides, ubyte[] is just a sequence of bytes and that's exactly what's being read from a stream.

Reply via email to