Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Вот есть 7.3.3/15, который говорит
L_L>должен компилиться (ну, при условии, что включены соответствующие заголовки). Например, g++ и Comeau его вполне компилируют.
а вот есть 10.3.2 (текст приводить не буду, только код), который говорит что зря они это делают
struct a{
virtual void f();
};
struct b : virtual public a{
virtual void f();
};
struct c : b, virtual a{
using a::f;
};
int main()
{
using namespace std;
с d;
d.f(); //b по стандарту
vector<с> v;
for_each(v.begin(), v.end(), mem_fun_ref(&с::f));//угадайте какая?
}
ладно. спорить можем до бесконечности всё равно ни к чему не приведёт. как выясняется у разработчиков компилеров тоже нет единого мнения.