@noreturn property
Steven Schveighoffer
schveiguy at yahoo.com
Mon Oct 25 08:18:22 PDT 2010
On Fri, 22 Oct 2010 13:22:19 -0400, Stewart Gordon <smjg_1998 at yahoo.com>
wrote:
> On 22/10/2010 03:44, Rainer Deyke wrote:
> <snip>
>> A 'void' function returns, therefore it conceptually returns a value.
>> For generic programming, it is useful to treat 'void' as a type like any
>> other, except that it only has one possible value (and therefore encodes
>> no information and requires no storage). If this is not implemented in
>> D at the moment, it should be.
>
> I've sometimes thought about this, and felt in any case that void.sizeof
> ought to be 0.
>
> The problem now is that it would clash with void array slicing and
> pointer arithmetic, which rely on the size of void being 1.
I proposed earlier that maybe you shouldn't be able to create void arrays
directly. This would help with the "contains pointers" issue. Maybe we
can combine that with your idea, and void * is simply a vehicle to pass
untyped data, and you can only use it if you cast it to something else?
It would require a *lot* of changes to the runtime, but it might be worth
it.
-Steve
More information about the Digitalmars-d
mailing list