template<typename T>
struct B
{
bool operator == (const B& b) { return true; }
};
template<typename T>
struct D : B<T>
{
using B<T>::operator ==;
};
int main ()
{
D<int> d1, d2;
return d1 == d2;
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IEIKewogIGJvb2wgb3BlcmF0b3IgPT0gKGNvbnN0IEImIGIpIHsgcmV0dXJuIHRydWU7IH0KfTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBEIDogQjxUPgp7CiAgdXNpbmcgQjxUPjo6b3BlcmF0b3IgPT07IAp9OwoKaW50IG1haW4gKCkKewogIEQ8aW50PiBkMSwgZDI7IAogIHJldHVybiBkMSA9PSBkMjsgCn0K