On Saturday, 27 May 2017 at 17:30:49 UTC, Ola Fosheim Grøstad
wrote:
On Saturday, 27 May 2017 at 17:22:02 UTC, Stanislav Blinov
wrote:
But they are incompatible precisely because structs "don't
have it". Inheritance for one. Reference semantics for
another. A class reference is a pointer in disguise, struct is
full layout on the stack. The only way to retain inheritance
and reference semantics while removing "class" keyword would
be not to merge classes into structs, but structs into
classes. And then what, always allocate on the heap?
I don't understand this argument, why would this be more
difficult for D than C++?
Perhaps it wouldn't be if we were talking about new language.
With D, such a change falls out of "some language changes, a bit
of automated source updating and a little bit of breakage", and
becomes "whole language change, a rewrite of runtime and standard
library, and breaking every single project that uses D today".
Or did we leave behind your original question?
Which is all possible as a library with zero language changes.
But for that to work, classes shall remain classes and structs
shall remain structs.
Huh?
Yes.
If that were true, we wouldn't even need the "extern(C++)",
would we?
Sounds more like an implementation detail to me.
:) Everything is an "implementation detail".