Skip to content

Non self-contained headers #492

@simon-schlepphorst

Description

@simon-schlepphorst

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions