Skip to content

[#531-3/5] Mark legacy include/container/ forwarding [[deprecated]] #534

Description

@kcenon

What

Mark every legacy forwarding header in include/container/ with [[deprecated]] and document removal in CHANGELOG.md for the next minor release.

Why

The legacy include/container/ path predates the canonical include/kcenon/container/ layout. It is currently a duplication source: the same type can be reached via two roots, and downstream code keeps depending on the legacy path because nothing has signalled that it is going away. A formal deprecation:

  • gives downstream consumers a compile-time warning to migrate
  • clears the path for a hard removal in the next minor release
  • closes the EPIC AC item "Forwarding headers [[deprecated]] with removal note in CHANGELOG"

Where

  • Files: every header under include/container/ (current state: at least include/container/optimizations/fast_parser.h; verify by enumerating include/container/ after the header-consolidation sub-issue merges)
  • CHANGELOG.md (new "Deprecations" entry)

How

Technical Approach

  1. Enumerate include/container/ and identify every forwarding header.
  2. Add [[deprecated("Use <kcenon/container/...> instead")]] on the forwarded type alias / function declaration. Pure forwarders that only #include the new path can use a #pragma message warning fallback because attributes do not attach to #include directives.
  3. Add CHANGELOG.md entry under "Deprecations" with replacement path + planned removal version.
  4. Verify build still succeeds (warnings expected for any in-repo legacy use; fix those as part of this PR if they exist).

Acceptance Criteria

  • Every forwarding header in include/container/ carries [[deprecated]] or equivalent warning
  • CHANGELOG.md lists removal target version
  • Build still green (no errors; warnings on legacy use are expected)

Estimated Size

XS (verified: only 1 forwarding header currently remains in include/container/; the heavy-lifting deprecation will be reaching all consumers, which is out of this issue's scope).

Part of #531

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions