Why can't we derive struct's?

rikki cattermole rikki at cattermole.co.nz
Fri Dec 21 04:54:40 UTC 2018


On 21/12/2018 5:09 PM, Walter Bright wrote:
> On 12/20/2018 7:21 PM, Timon Gehr wrote:
>> But it's a solved problem. Just make `alias this` exactly like `import`.
> 
> Imports don't have adjuster thunks, implicit cast issues, slicing, or 
> empty base optimizations. Import lookup in a class is different because 
> of the two-phase nature of it (people complained bitterly about the 
> earlier single phase lookup).
> 
> Import lookup doesn't have to conform to the relevant undocumented C++ 
> ABI, either. (It was about a year of bug reports until I was finally 
> able to match Microsoft C++'s MFC behavior for MI struct layout.)
> 
>    class C : B {
>      B b;
>      alias b this;
>    }
> 
> Now what? (This is not specified in the dlang spec.)

Type Declaration -> alias this [0 .. $]

At declaration site or the alias this, if it is not free-of-issues, error.

Say didn't we have a DIP that was accepted for multiple alias this?


More information about the Digitalmars-d mailing list