template <class T> struct B;
template <class T> B<T> operator+(const B<T>&);
template <class T>
struct B
{
B() {}
friend B operator+<T>(const B&);
};
template <class T> B<T> operator+(const B<T>&)
{
return B<T>();
}
int main()
{
B<int> b;
+b;
}
dGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBCOwoKdGVtcGxhdGUgPGNsYXNzIFQ+IEI8VD4gb3BlcmF0b3IrKGNvbnN0IEI8VD4mKTsKdGVtcGxhdGUgPGNsYXNzIFQ+CnN0cnVjdCBCCnsKICAgQigpIHt9CiAgIGZyaWVuZCBCIG9wZXJhdG9yKzxUPihjb25zdCBCJik7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gQjxUPiBvcGVyYXRvcisoY29uc3QgQjxUPiYpCnsKICAgcmV0dXJuIEI8VD4oKTsKfQoKaW50IG1haW4oKQp7CiAgIEI8aW50PiBiOwogICArYjsKfQoK