diff --git a/src/controller/IDatasetChartStrategy.hpp b/src/controller/IDatasetChartStrategy.hpp index 115d791..29c1452 100644 --- a/src/controller/IDatasetChartStrategy.hpp +++ b/src/controller/IDatasetChartStrategy.hpp @@ -15,6 +15,15 @@ struct IDatasetChartStrategy { class ChartStrategyRegistry { public: + ChartStrategyRegistry() = default; + // 禁拷贝(含 unique_ptr,本就不可拷贝;显式 delete 让意图清晰)。 + // 保留移动:map 移动只搬节点,find() 返回的裸指针指向的策略对象地址不变、仍有效; + // 且测试 makeInversionRegistry() 按值返回需要移动。 + ChartStrategyRegistry(const ChartStrategyRegistry&) = delete; + ChartStrategyRegistry& operator=(const ChartStrategyRegistry&) = delete; + ChartStrategyRegistry(ChartStrategyRegistry&&) = default; + ChartStrategyRegistry& operator=(ChartStrategyRegistry&&) = default; + void add(std::unique_ptr s) { const std::string code = s->ddCode(); map_[code] = std::move(s);