On Tuesday, 27 February 2018 at 17:33:52 UTC, 12345swordy wrote:
On Tuesday, 27 February 2018 at 15:52:15 UTC, Andrei
Alexandrescu wrote:
https://isocpp.org/blog/2018/02/new-cpp-foundation-developer-survey-lite-2018-02
Andrei
I have submitted, already. My major complaints boils down to
the fact that they refuse to deprecated features due to
religious like devotions to backwards compatibility support.
Well, not religious but... they are removing things too slow.
There is a paper about stability and velocity of C++ that
proposes to widen things to move forward faster and... btw I
complained about exactly that as well. Things are getting bigger
and bigger, just discard things. I also complained about the
following:
1.- everyone is saying stop the preprocessor... modules support
no preprocessor after import... ok, then, why feature test
macros? They should be enums or constexpr but never a
preprocessor macro.
2.- the single thing that bothers me the most... initialization
is a mess, especially after adding {} vs (). With good intention,
but the cognitive overhead and room for surprises is too big.
3.- if constexpr cannot simply compete with static if. I
suggested adding: if constexpr that does not require a template
function, and some alternative if constexpr mechanism (I do not
care about the name or if it is a separate feature) that can
conditionally compile structs or block scopes a la version() in
D. This feature is needed to kill the preprocessor if they really
want to take that seriously, especially with modules on its way.
BTW, I have been trying a bit of D lately and I like how flexible
things such as opDispatch and static if are. I love modules as
well. I like a lot also the fact that you do not need to be
prefixing all things all the time because of potential hijacking.
The static reflection has also been useful for me. I was just
coding a SNES ROM parser but that was enough already to show some
of the advantages.