Summary
Remove or consolidate core/deprecation.h in container_system to simplify the codebase for C++20 module migration, following Kent Beck's "Fewest Elements" principle.
Parent Epic
Part of kcenon/common_system#256 (C++20 Module Migration - Cross-System Preparation)
Current State
File Location
include/container/core/deprecation.h
Problem Analysis
| Issue |
Kent Beck Principle |
| Separate file for deprecation markers |
Fewest Elements |
| Should use standard [[deprecated]] attribute |
Reveals Intention |
| Adds unnecessary header dependency |
No Duplication |
C++20 Module Impact
Deprecation headers add complexity to module boundaries:
export module kcenon.container;
// deprecation.h should not be part of public module interface
Proposed Solution
Option 1: Remove file entirely
- Replace custom deprecation macros with
[[deprecated("message")]]
- C++14+ standard attribute is sufficient
Option 2: Move to internal namespace
- If custom deprecation tracking is needed
- Move to
detail:: or internal:: namespace
Tasks
Acceptance Criteria
Related
Summary
Remove or consolidate
core/deprecation.hin container_system to simplify the codebase for C++20 module migration, following Kent Beck's "Fewest Elements" principle.Parent Epic
Part of kcenon/common_system#256 (C++20 Module Migration - Cross-System Preparation)
Current State
File Location
include/container/core/deprecation.hProblem Analysis
C++20 Module Impact
Deprecation headers add complexity to module boundaries:
Proposed Solution
Option 1: Remove file entirely
[[deprecated("message")]]Option 2: Move to internal namespace
detail::orinternal::namespaceTasks
deprecation.hcontents and usage[[deprecated]]attributeAcceptance Criteria
Related