Вот (упрощенный) базовый класс:
template <class T>
class SharedObject
{
protected:
QExplicitlySharedDataPointer <typename T::Data> d;
};
А вот производный:
class ThisWontCompile : public SharedObject <ThisWontCompile>
{
private:
friend class SharedObject;
struct Data : public QSharedData
{
int id;
};
};
Есть ли обходной путь для доступа к ThisWontCompile :: Data из SharedObject ? Что именно можно и что нельзя делать с объектом, производным от базового объекта?