-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Going forward, we're going to have to start hiding more implementation details and using parts in a more piecemeal fashion. While the prelude header has been a decent success, it turns out we don't need half the declarations found within it in most files, and this
- makes IWYU go absolutely bonkers when run on our codebase
- makes it VERY hard to maintain the header.
While creating a huge splayed filesystem of headers used to be considered "bad practice", we've moved to Clang for our C++ stuff, so we can rely on its faster preprocessor for performance.
The current plan to refactor the header is as follows:
- macros are back into their own header
- bare minimum concepts are placed into their own headers
ranges::
CPOs are placed into their own headersusing
declarations and "elementary" types go into one header
This should break up a lot of the monotony of our current setup and make this way more manageable for our uses. It also means that as time goes on and most of these shims are implemented, we can slowly remove these detail headers and eventually place everything back into apex/core/prelude.hpp