D 2015/2016 Vision?

Namespace via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 7 04:21:01 PDT 2015


> Well, except that then it's less obvious that an object is 
> ref-counted and less likely that the programmer using it will 
> realize that the object expects to have a deterministic 
> lifetime. So, it might actually make the situation worse and 
> make it so that programmers are more likely to get wrong. I 
> don't think that it's clear at all that the situation will be 
> better with regards to programmers getting it right if it's in 
> the language. Maybe it will be, but maybe it won't.
>
> - Jonathan M Davis

Well then, there is another solution: enable inheritance for 
structs as well. Then we have polymorphie and deterministic 
lifetimes. Of course we cannot expect too much magic. But an 
example:

----
struct A {
     int hello() {
         return 42;
     }
}

struct B : A {
     override int hello() {
         return 23;
     }
}

void foo(A* a) {
     writeln(a.hello()); // prints 23
}

void main() {
     A* b = new B();
     foo(b);
}
----

That shouldn't be too complex, since it follows the rules of C++: 
http://cpp.sh/9r6k


More information about the Digitalmars-d mailing list