-
Notifications
You must be signed in to change notification settings - Fork 38
Non self-contained headers #492
Description
Issue:
ippls internal header are not self contained and use implicit dependencies.
Example:
For example Types/Vector.h relies on the fact, that the chain ippl.h - Utility/ParallelDispatch.h - Kokkos_Core.hpp is loaded right before it's own inclusion, which by accident provides the needed definition for std::vector.
There are more examples, but a patch would be a better place to list them all.
Impact:
Besides the reasons mentioned in #177 and #293, it limits the usefullness of Language Server Protocols (LSPs) for VSCode, Vim and other IDEs and leaves the cumbersome task to the developer to find definitions through other means (grep, etc.).
For maintainability it would be best, if ippl would adhere to the C++ Core Guidlines and restructure its headers to be self-contained.