Overload resolution compiler bug |
|
struct B {
void c() {};
};
struct E {
bool c() {};
};
struct M : B, E {
using E::c;
using B::c;
};
#pragma argsused
int main(int argc, char* argv[])
{
M m;
m.c();
return 0;
}
Overload resolution incorrectly selects B::c() with BCB2006. Comeau
reports ambiguity with overload resolution as it should.
If the two using declarations are swapped around E::c() is selected. It
appears that the last using declaration plays an incorrect part in
overload resolution.
Fraser.
|