On 07/09/2017 03:12 PM, Walter Bright wrote:
On 7/9/2017 6:13 AM, Andrei Alexandrescu wrote:
We should use typeof(assert(0)) for Bottom. There is precedent - there
is no name for typeof(null).
I had forgotten about the typeof(null) thing. You're right. But there
are some issues. What do we do with:
typeof(assert(0))* p;
? What does that mean?
That would be a pointer that may only be null - a consequence of the
typeof(assert(0)) being uninstantiable.
Generally I'm not too worried about constructs like typeof(assert(0))[],
typeof(assert(0))*, use in templates etc - we don't need to "design"
these cases, their behavior flows from the properties of
typeof(assert(0)) itself.
Similarly, I don't recall ever there being a problem with typeof(null)*,
typeof(null)[], people complaining they passed typeof(null) to a
template where it did bad things, etc.
Andrei