template<class T>
struct A {};
template<>
struct A<int>;
template<>
struct A<float>
{
A<int> f();
};
template<>
struct A<int> {
int value;
};
A<int> A<float>::f()
{
return A<int>{};
}
int main()
{
A<float> a;
a.f();
}
dGVtcGxhdGU8Y2xhc3MgVD4Kc3RydWN0IEEge307Cgp0ZW1wbGF0ZTw+CnN0cnVjdCBBPGludD47Cgp0ZW1wbGF0ZTw+CnN0cnVjdCBBPGZsb2F0Pgp7CglBPGludD4gZigpOwp9OwoKdGVtcGxhdGU8PgpzdHJ1Y3QgQTxpbnQ+IHsKCWludCB2YWx1ZTsKfTsKCkE8aW50PiBBPGZsb2F0Pjo6ZigpCnsKICAgIHJldHVybiBBPGludD57fTsKfQoKaW50IG1haW4oKQp7CglBPGZsb2F0PiBhOwoJYS5mKCk7Cn0K