3 // According to 14.6.2.4 of C++ Standard:
4 // "If a base class is a dependent type, a member of that
5 // class cannot hide a name declared within a template, or a
6 // name from the template's enclosing scopes."
10 int foo() { return 1; }
13 int foo() { return 0; }
15 template <class T> class C : public T {
17 int caller() { return foo(); } // This must be ::foo, not B::foo.
22 return c.caller(); // Returns 1 if we got the wrong one.