Frits van Bommel пишет:
Weed wrote:
In C++, we had the problem - "slicing" objects.
In D this problem is solved inability to inherit from structs.
Without inheritance of structs many things are not possible, compared with C++. Why, instead of the complete inability to inherit, just do not make impossible to up casting struct type by value.

like this:

struct s1 {}
struct s2 : s1 {}

s1 base;
s2 derr;

s1* base_ptr = &derr; // ok
s1 val = derr; // error

This is why:
  s1 val2 = *base_ptr; // error

Yes, right.
I do not understand that it is wrong?

>
> (And disallowing '*ptr' on struct pointers is not likely to find much
> support)

I am not saying do not let '* ptr'. Besides, now you can not do this just because there is no inheritance at all.

Reply via email to