template <class T, class U> struct Additional {
T t;
U u;
};
template <class T, class U> struct Base {
void test1() {
additional-> // members are shown here
}
Additional<T, U>* additional;
};
template <class T, class U> struct Derived : Base<T, U> {
void test2() {
additional-> // IntelliSense: 'No members available'
}
};
Я отметил в комментариях интересные места. Цель состоит в том, чтобы получить доступ к предложенным членам внутри test2()
. В первый раз я попытался объявить шаблон struct
внутри другого шаблона struct
(Additional
в Base
), но нотация стала сложной, поэтому я решил оставить Additional
снаружи. Я делаю контейнеры Dynami c для использования с драйверами ядра. VS2019, Win 10, последние обновления для обоих. Некоторые предложенные варианты, которые не сработали:
template <class T, class U> struct Derived : Base<T, U> {
void test2() {
this->additional-> // This one passed the compile
}
};
template <class T, class U> struct Derived : Base<T, U> {
void test2() {
Base<T, U>::
}
};
template <class T, class U> struct Derived : Base<T, U> {
using Base<T, U>::additional;
void test2() {
additional->
}
};