Yet another terrible compile time argument proposal

bomat Tempest_spam at gmx.de
Tue Jan 16 21:27:27 UTC 2024


On Tuesday, 16 January 2024 at 00:29:20 UTC, zjh wrote:
> It's just a few `constructors`, it's easy to distinguish.

It's a mess.

Look, I don't want to derail this discussion, I cannot even judge 
the usefulness of the proposal, I just want to whole-heartedly 
agree with Paul Backus about the point that you can overdo it 
with adding bells and whistles, especially when you never 
deprecate (let alone remove) old stuff because of backwards 
compatibility.
And if C++ is not a great example for that, I don't know what is.
It's not "just a few constructors". At this point it's absolutely 
everything. Everything can be done in 7 different ways, but of 
course with tiny nuances that nobody can understand anymore. The 
logic by which a C++ compiler will generate default ctors and 
copy-operators based on which ones you have defined manually is 
literally quantum mechanics: look at the system too hard and you 
will change its behavior. Asylums are filled with people who 
tried to understand what actually happens when a C++ function 
returns a value.
Whenever I meet people who call themselves "C++ experts" (e.g. in 
job interviews - great fun), I ask them for the difference 
between an lvalue, an rvalue, a glvalue, a prvalue, and an 
xvalue, just to show them how wrong they are. Usually they think 
I made those up, and I wish I had.
The bottom line is: That level of complexity is "the last thing D 
needs":
https://www.youtube.com/watch?v=KAWA1DuvCnQ



More information about the Digitalmars-d mailing list