On Monday, 6 June 2016 at 18:33:36 UTC, ParticlePeter wrote:
On Monday, 6 June 2016 at 16:19:02 UTC, Alex Parrill wrote:
On Monday, 6 June 2016 at 09:43:23 UTC, ParticlePeter wrote:
In C NULL can be used as integer as well as null pointer.
Is there a way to create such a type in D?
The type should have only one value which is obviously
(0/null).
A extern( C ) function should be able to take it as either
one.
Overloaded enum pops into my mind as example:
enum NULL = 0;
enum NULL = null;
Is this possible somehow?
I already asked about this:
https://forum.dlang.org/post/bnkqevhyxwdjjxsct...@forum.dlang.org
Tldr; doesn't seem to be possible without multiple alias this
or using ABI hacks.
O.k., my web search didn't find that topic. The last reply
looks promising, wouldn't that work?
That's the ABI hack I mentioned. It abuses the fact that on most
hardware and compiled, a pointer and a structure containing a
single pointer have the same binary representation. It will
likely work, but it isn't guarenteed.