What
Move all .h / .hpp headers from feature directories at the repository root into the canonical location include/kcenon/container/.
Current scattered locations:
core/ — 21 headers
internal/ — 16 headers
integration/ — 1 header
messaging/ — 1 header
Target:
include/kcenon/container/core/
include/kcenon/container/internal/
include/kcenon/container/integration/
include/kcenon/container/messaging/
Why
include/ already contains some headers under kcenon/container/, but feature directories still hold 39 headers at the repo root. As a result:
#include paths are ambiguous: the same type can be reached via multiple roots.
core/, internal/, integration/, messaging/ cannot be removed at repo root, blocking the EPIC's layout goal.
- Some already-moved headers ended up nested awkwardly (e.g.
include/kcenon/container/container/fwd.h); this issue is the right time to also fix the nested container/container/ paths.
Where
- Source:
core/, internal/, integration/, messaging/ (header files only — .cpp is out of scope, see #)
- Target:
include/kcenon/container/{core,internal,integration,messaging}/
- Affected: every translation unit that
#includes the moved headers
How
Technical Approach
- Move headers preserving subdirectory structure where it exists.
- Update every
#include site in the repo (sources, tests, examples, benchmarks).
- Update
target_include_directories(...) in CMakeLists.txt so the new layout is discoverable from public + private targets.
- Fix the existing
include/kcenon/container/container/... nested paths to flat include/kcenon/container/....
- Run full build + tests.
Acceptance Criteria
Estimated Size
M (~39 headers + many #include sites). Pure mechanical move + path updates.
Part of #531
What
Move all
.h/.hppheaders from feature directories at the repository root into the canonical locationinclude/kcenon/container/.Current scattered locations:
core/— 21 headersinternal/— 16 headersintegration/— 1 headermessaging/— 1 headerTarget:
include/kcenon/container/core/include/kcenon/container/internal/include/kcenon/container/integration/include/kcenon/container/messaging/Why
include/already contains some headers underkcenon/container/, but feature directories still hold 39 headers at the repo root. As a result:#includepaths are ambiguous: the same type can be reached via multiple roots.core/,internal/,integration/,messaging/cannot be removed at repo root, blocking the EPIC's layout goal.include/kcenon/container/container/fwd.h); this issue is the right time to also fix the nestedcontainer/container/paths.Where
core/,internal/,integration/,messaging/(header files only —.cppis out of scope, see #)include/kcenon/container/{core,internal,integration,messaging}/#includes the moved headersHow
Technical Approach
#includesite in the repo (sources, tests, examples, benchmarks).target_include_directories(...)in CMakeLists.txt so the new layout is discoverable from public + private targets.include/kcenon/container/container/...nested paths to flatinclude/kcenon/container/....Acceptance Criteria
core/,internal/,integration/,messaging/contain no header filesinclude/kcenon/container/include/kcenon/container/container/nested directory removed (flattened)Estimated Size
M (~39 headers + many
#includesites). Pure mechanical move + path updates.Part of #531