// PR c++/87571
template <class> struct A {
template <class> struct B {
template <class> friend class B;
protected:
int protected_member_;
public:
template <class T> int method(const B<T>& other) const {
return other.protected_member_;
}
};
};
int main() {
A<int>::B<int> a;
A<int>::B<char> b;
a.method(b);
}