Can we just have struct inheritence already?
Era Scarecrow
rtcvb32 at yahoo.com
Tue Jul 2 04:54:07 UTC 2019
On Sunday, 9 June 2019 at 08:05:34 UTC, Manu wrote:
> Imagine if we could just write:
>
> struct DerivedStruct : BaseStruct
> {
> // derived members
> //...
> }
>
> Just imagine!
Mhmm...
I'd think struct inheritance would follow the original C++'s
ideology.
So probably:
1) No Virtual functions. All functions are FINAL (replacing)
2) No polymorphism.
3) Limited casting (Casting up/back is easier than casting down,
with space limitations in mind), though casting could simply be
disallowed but that seems unlikely when you get low level.
In such a case you could build a base struct and then add onto
it for several structs behaviors. Being able to avoid using the
GC as much as possible that would help. Also most of the
functions/structures are basically copy/pasted with overriding
functions completely replacing the previous ones.
I've been wanting this for a while. I had a prototype set of
templates to do this very thing! But... it no longer works,
hasn't since... oh i don't remember. I'd have to pull the old
files out...
I'd probably ask a debugging feature where you could output the
new finalized struct in it's full source code or maybe rather
just it's API specifying what functions/variables come from
where, so you get a clear picture of what you're working with if
you inherit several times/deep.
More information about the Digitalmars-d
mailing list