почему это работает
struct Base {
virtual void visit(const A &) { };
virtual void visit(const B &) { };
}
и это жалуется на двусмысленность при вызове метода посещения
template< typename T >
struct X {
virtual void visit(const T &) { };
};
struct Base: X< A >, X< B > { };
это также показывает ту же проблему:
struct Y {
virtual void visit(const A &) { };
};
struct Z {
virtual void visit(const B &) { };
};
struct Base: Z, Y { };
как-то это похоже на то, что множественное наследование путается с сигнатурами виртуальных функций...
с gcc версии 4.8.0 20130411 (предварительная версия)
;после}, заканчивающего тело функции, как вvirtual void visit(const A &) { };, и это уродливо. - person curiousguy   schedule 14.05.2013