Код: Выделить всё
template
struct dynamic_type_t {};
template
inline constexpr dynamic_type_t dynamic_type {};
template
class RAII
{
private:
T* m_ptr;
public:
template
RAII(dynamic_type_t, Args&&... args) {
m_ptr = new DynamicType{std::forward(args)...};
}
~RAII() { delete m_ptr; }
};
< /code>
Теперь тестовый код работает безупречно: < /p>
#include
struct Base
{
Base() = default;
virtual ~Base() { std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79506227/can-stdallocator-be-used-to-handle-polymorphic-objects[/url]