Здравствуйте, Aera, Вы писали:
A>В VC6.0 имеем следующую ситуацию
A>A>struct base
A>{
A> virtual ~base();
A> virtual void ok();
A>};
A>struct derived : public base
A>{
A>};
A>template<class T> void foobar(T *self)
A>{
self->>damn();
A>}
A>void foobar(base* self)
A>{
self->>ok();
A>}
A>void test()
A>{
A> derived *f=0;
A> foobar( f ); // error C2039: 'damn' : is not a member of 'derived'
A>}
A>
A>Кто виноват и что можно сделать, чтобы заставить работать указанный код.
Могу ошибаться, но как мне кажется в данном случае будет вызвана более подходящая функция, полученная при инстанцировании шаблона с параметром T = derived; но derived не имеет метода damn() — отсюда и ошибка.