On Thursday, 10 April 2014 at 19:28:16 UTC, Jacob Carlborg wrote:
On 2014-04-10 17:21, Remo wrote:

Please do not forget about C++ porting problems that are related to this. The code from C++ should compile and work as expected or does not
compile at all and give meaningful error message.
Right now it compiles but does not work at all.
This struct constructor problem is one of the ground why I have stopped
porting code to D.
I hope there will be proper solution soon.

How said anything about that? It has been said that one should be able to paste C code in a D file and have it compile with the same resulting semantics as in C or not compile at all. But never for C++.

Well, it's true that the idea is that you can copy paste C code into D and it "just works", keeping the same semantics (provided minor/trivial tweaks).

And nobody ever sold you could do the same thing with C++.

*BUT*, if you happen to copy paste C++ code, and it *does* compile, then it is pretty much expected to keep the same resulting semantics, yes.

The "this(Arg arg = someDefault)" is a flagrant example of something that should be rejected. Not only because it's stupid to write in plain D, but also because it creates gratuitous deviation from the behavior you'd get in C++. And that's actually very bad (IMO).

Reply via email to