But the preprocessor cannot be disabled in C++20. It is still there and it is still used and it is still causing problems. And for some of the use cases there is no good alternative to the preprocessor. And we're 2021.
Func fact - the C++ committee is not 100% sure/convinced they would be able to convert the whole STL to the new module system. (at least the last time I've inspected the meeting mailings this was the case) ![Smiley :)](https://forums.codeblocks.org/Smileys/default/smiley.gif)
The developer world does not change from day one. System headers, old libraries, OS-level features, cross language support: all these do and are going to depend on the preprocessor still. But I do not understand how the backwards compatibility of the C++ language can terribly affect your vision of a good modern language? So what if those language features with backwards compatibility in mind are the reason for slow compilation; your personal project can do better, right?
You mention use cases where there is no "good alternative to the preprocessor". If you care to mention them, then I can either confirm or deny your thought. Since the language does undergo drastic changes in recent days it is a good idea to reiterate on past experiences.
![Wink ;)](https://forums.codeblocks.org/Smileys/default/wink.gif)
I'm not lecturing you. I'm just stating facts. Your statement is that the language design doesn't affect compilation speed. I've mentioned two language features which does affect the compilation speed.
And for some things they don't have alternatives in the language, so you have to pay the price in compile time.
It seems concepts are another of those language features which does affect compilation speed.
I consider painting a depressing picture quite the lecture. Your statement is that deprecated or bad use of the C++ language does make C++ compile slow. I don't disagree with this notion, but I find it very unfair. In general though, if willing to invest in a radically new C++20-based language, compilation speed of C++ is good. That is basically my point. Development experience distinguishes the good from the bad programmer, very significant so by the example of the C++ developer.
About concepts, I very much like that language feature. Better compilation feedback by putting constraints into use of C++ templates is great to have. But I do not want to promote this feature. It is too much of a gimmick, a cherry pick by certain code scenarios. And if you are not a fan but a IDE developer, I can see how implementing IDE feedback for it can be annoying.