Parameterized inheritence issues, bug or ignorance?
Kagamin via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 20 03:46:02 PDT 2016
On Monday, 20 June 2016 at 00:01:58 UTC, Joerg Joergonson wrote:
> I have a gui based on the following classes:
>
> public class Widget { Widget Parent; }
> public class Item : Widget;
>
> public class Button(T : ButtonItem) : Widget { T[] Items; ... }
> public class ButtonItem : Item
> {
> void Do() { auto parent =
> (cast(Button!ButtonItem)this.Parent); ...}
> ...
> }
What you ask for is called template covariance. D doesn't have it.
You can solve your problem by providing
Button!ButtonItem-specific functionality in an intermediate
ButtonBase class: https://dpaste.dzfl.pl/4c071b237aa0
More information about the Digitalmars-d
mailing list