Pleinement conscient, que la question que je pose est en dehors de la portée de la norme C++, je suis curieux de savoir pourquoi GCC renvoie la même erreur deux fois? Je sais pourquoi l'erreur est là, mais je regarde en avant pour comprendre pourquoi la duplication dans le message d'erreur.Pourquoi une erreur est émise deux fois?
#include <iostream>
using namespace std;
struct A{
virtual void f1() = 0;
};
struct B : A{
};
struct C : A{
void f1(){}
};
struct D : C, B{
void f2(){f1();}
};
int main(){}
Erreur:
prog.cpp: In member function ‘void D::f2()’:
prog.cpp:16: error: reference to ‘f1’ is ambiguous
prog.cpp:5: error: candidates are: virtual void A::f1()
prog.cpp:12: error: virtual void C::f1()
prog.cpp:16: error: reference to ‘f1’ is ambiguous
prog.cpp:5: error: candidates are: virtual void A::f1()
prog.cpp:12: error: virtual void C::f1()
version GCC 4.3.4 – Chubsdad
Ce qui a changé dans la source à g ++ près de la chaîne "référence à% s est ambigu" entre la version 4.2.1 et 4.5.1? –