Результаты поиска
Найдено результатов: 1
GCC проблема: использование члена базового класса, который зависит от аргумента шаблона
Следующий код компилируется не с помощью gcc, а с помощью Visual Studio:
template <typename T> class A {
public:
T foo;
};
template <typename T> class B: public A <T> {
public:
void bar() { cout << foo << endl; }
};
Я получаю ошибку:
test.cpp: в функции-члене ' void B::bar()’:
test.cpp:11: ошибка: ‘foo’ не был объявлен в этой области видимости
Но так и должно быть! Если я изменю bar на
void bar() { cout << this->foo << endl; }
затем он компилируется, но я не думаю, что мне нужно это делать. Есть ли что-то в официальных спецификациях C++, что GCC следует здесь, или это просто причуда?