Hacker News new | ask | show | jobs
by csb6 1118 days ago
> I still need it for the include system

The goal is to get rid of this using C++20 modules (and potentially reduce compile times due to repeated expansion of header files).

> the file and line macros

This is addressed by C++20's std::source_location [0]

> I still need it for string interpolation

If you mean the `#` macro operator, then yeah that is still needed.

The point is to provide ways of doing these tasks that don't require a weird text replacement macro language and instead do them with C++. Obviously due to legacy codebases the preprocessor is going to stick around.

[0] https://en.cppreference.com/w/cpp/utility/source_location

1 comments

Yes. My biggest frustration with c++ as a language is that there are often two ways to do things: the right way, and the way you will find in tutorials and codebases because the right way didn't exist yet when they were written. This means the cognitive load to use the language in any context that isn't "greenfield project with experts" is significant relative to other languages.