Переделал вопрос Ошибка в иерархии классов
struct A {
void foo() {}
};
template<typename q>
struct Base {
explicit Base(A a) : a(a) {}
A a;
};
template<typename q>
struct Derived : Base<q> {
Derived() : Base<q>(A()) {
a.foo(); // не работает
}
};
int main() {
new Derived<int>();
}
Если базовый класс является зависимым шаблонным типом, то поиск неквалифицированных имен в таком базовом классе не производится. К именам из такого базового класса следует обращаться либо по квалифицированному имени (Base<q>::a.foo()), либо через явный this (this->a.foo()).
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости