Оператор разрешения области видимости не будет работать последовательно с шаблоном

голоса
0

Когда я использую оператор разрешения области в рамках объявления методы в шаблоне структуры, он не будет работать. Но когда я использую тот же оператор разрешения области в рамках SizeOf () в определении метода в пределах той же шаблон структуры, он отлично работает. Может кто-то пожалуйста, помогите мне получить эту работу как часть определения метода? Я использую Visual C ++ в Visual Studio. Вот пример кода проблемы.

sample.h

struct Top {
    struct Data {
        int time;
    };

    Data* pData;
};

template<typename T>
struct App {
    T* pParent;

    T::Data* getDD() {  // error C2061: syntax error: identifier 'Data'
        return pParent->pData;
    }

    int getSize() {
        return sizeof(T::Data);   // This works fine
    }
};

sample.cpp

    main() {
        Top top;
        App<Top> app;

        Top::Data* pData = app.getDD();
        int size = app.getSize();
    }
Задан 20/10/2018 в 05:34
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more