int f()
{
return 0;
}
int f(long l)
{
return 0;
}
template<class T>
struct A
{
int f()
{
return 1;
}
};
template<class T>
struct B
: A<T>
{
int g()
{
return f();
}
};
template<class T>
struct C
{
int g()
{
return f(0);
}
};
int f(int i)
{
return 1;
}
int main()
{
B<int> b;
C<int> c;
return b.g() + c.g();
}