Это продолжение этого вопроса, но я не хочу использовать пользовательское средство удаления.У меня есть следующий интерфейс:
struct Interface {
Interface(const Interface &) = delete;
auto operator=(const Interface &) -> Interface & = delete;
~Interface() = 0;
protected:
Interface() = default;
};
И реализация:
struct Implementation : public Interface {
Implementation(Pool &p) : m_pool{p} {}
Pool &m_pool;
};
У меня также есть пул реализаций:
struct Pool {
auto get() -> std::unique_ptr<Interface>;
std::vector<std::unique_ptr<Interface>> m_objects;
};
Мой вопрос, если этоВозможно ли Implementation
, созданный как указатель на Interface
, перемещаться в пул, когда вызывается его деструктор?