// { dg-do run } | |
// Test of class-scope using-declaration for functions. | |
#define assert(COND) if (!(COND)) return 1 | |
struct A { | |
int f(int) { return 1; } | |
int f(char) { return 2; } | |
}; | |
struct B { | |
int f(double) { return 3; } | |
}; | |
struct C : public A, public B { | |
using A::f; | |
using B::f; | |
int f(char) { return 4; } | |
int f(C) { return 5; } | |
}; | |
int main () | |
{ | |
C c; | |
assert (c.f(1) == 1); | |
assert (c.f('a') == 4); | |
assert (c.f(2.0) == 3); | |
assert (c.f(c) == 5); | |
} |