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".

Reply via email to