Why are void[] contents marked as having pointers?
Denis Koroskin
2korden at gmail.com
Thu Jun 4 11:31:07 PDT 2009
On Thu, 04 Jun 2009 22:16:42 +0400, Vladimir Panteleev
<thecybershadow at gmail.com> wrote:
> On Thu, 04 Jun 2009 05:10:17 +0300, Christopher Wright
> <dhasenan at gmail.com> wrote:
>
>> bearophile wrote:
>>> Christopher Wright:
>>>> Another good point. Or how do you index it by byte?
>>> How can you read & write files of 3 bytes if voids are 4 bytes long
>>> chunks? :o) I don't understand. I want to read and write files
>>> byte-by-byte.
>>> Bye,
>>> bearophile
>>
>> Vladimir was suggesting that void[] be the same as ubyte[] and that you
>> use void*[] if you might include a pointer. So that use case would be
>> safe.
>
> Actually, I think Andrei's idea is better (to allow implicit casting
> arrays of non-reference types to const(ubyte)[]). It introduces an
> abstract no-pointers type, but still allows implicit casting to "might
> have pointers".
>
There is a pitfall: should an "arrays of non-reference types" be
implicitly castable to const(byte)[] or const(ubyte[])[] ?
Should const(byte)[] also be implicitly castable to const(ubyte)[] (or
vice versa)?
More information about the Digitalmars-d
mailing list