bottom type as parameter or local variable, does that make sense?
H. S. Teoh
hsteoh at quickfur.ath.cx
Mon Jan 17 18:05:49 UTC 2022
On Mon, Jan 17, 2022 at 05:53:25PM +0000, Elronnd via Digitalmars-d wrote:
> On Monday, 17 January 2022 at 16:11:03 UTC, Timon Gehr wrote:
> > if a type `A*` is a subtype of a type `B*`, then
> > `A.sizeof>=B.sizeof`. `noreturn*` is a subtype of any `T*`. Hence,
> > `noreturn.sizeof` should be at least `size_t.max` or even `∞`.
>
> I don't think this is right; it must be that A.sizeof==B.sizeof.
> Consider e.g.:
>
> B* f(B* b) { return b+1; }
>
> What happens if you pass in an A*, and A.sizeof>B.sizeof?
This is exactly what happens when you pass a derived class to a function
that expects the base class, BTW.
T
--
The problem with the world is that everybody else is stupid.
More information about the Digitalmars-d
mailing list