Вы не можете static_cast
a unique_ptr*
указатель на IMagneticData*
указатель, поскольку они не связаны между собой типами.
Вам вообще не нужно приведение. Поскольку MagEventNotifierAndSupplier
является производным от IMagneticData
, указатель MagEventNotifierAndSupplier*
может быть назначен непосредственно указателю IMagneticData*
без преобразования.
Вы можете получить указатель MagEventNotifierAndSupplier*
из объекта std::unique_ptr<MagEventNotifierAndSupplier>
через его get()
метод, например:
class MagEventNotifierAndSupplier : public CSubject, public IMagneticData
{
public:
//implement
};
auto m_MagEventNotifierAndSupplier = std::make_unique<MagEventNotifierAndSupplier>("test");
IMagneticData* data = m_MagEventNotifierAndSupplier.get();