Ни вы не можете перенаправить объявление внутреннего класса, ни получить доступ к ним как к неполному типу из template Observable
.Однако в таком случае у вас может быть один прием.
// make inner class external
class TheObservedObject
{
private: // make everything private
friend class MyClass; // make friends with original outer class
};
Таким образом, эффективно TheObservedObject
доступен только для MyClass
.
Теперь вы можете изменить class Observabile<>
, принимая 2параметры и передать вышеупомянутый класс также.Это может налагать определенные ограничения, но может быть близким совпадением.