On Mon, 03 Jan 2011 15:15:27 -0500, so <s...@so.do> wrote:
On Mon, 03 Jan 2011 14:58:22 +0200, Steven Schveighoffer
<schvei...@yahoo.com> wrote:
On Sat, 01 Jan 2011 10:59:47 -0500, so <s...@so.do> wrote:
This can be significantly shortened:
write((&i)[0..1]);
Wow, i didn't know that!
Could you point me to doc, please?
Thanks.
http://www.digitalmars.com/d/2.0/arrays.html#implicit-conversions
-Steve
Thanks.
I know those 3, but they don't have much to do with your example, or
most likely i didn't get it...
type of (&i)[0..1] is int[]. int[] is implicitly convertable to void[]
per those rules, so there is no need to cast.
The original post implying that void[] would make things more difficult
stated that with write taking a (void[]) argument instead of (void *,
size_t length) you would have to write put like this:
void put(int i) {
void *tmp = cast(void*)(&i);
void[] arr = tmp[0..int.sizeof];
write(arr);
}
But you do not need to do this, all you need is what I wrote (which is
actually simpler I think than the void*, size_t function).
That was my point. If there is something else you are looking for, maybe
you can ask a different question?
-Steve