@ Дэвид, ну, я думаю, я не могу вызвать приведение в определении класса (в отличие от определения члена класса). Я пытаюсь сделать небольшой ORM в сочетании с шаблоном явного обмена Qt. Моя цель состояла в том, чтобы позволить пользователю написать весь необходимый код, включая фактическую структуру для хранения информации в памяти (данных) внутри своего подкласса.

упрощенный) базовый класс:

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? Что именно можно и что нельзя делать с производным объектом от базового объекта?

Ответы на вопрос(1)

Ваш ответ на вопрос