#include <iostream>
using namespace std;
struct H
{
template <class C>
struct Ref
{
friend class H;
Ref() : m_ref(0) {}
template<typename D>
Ref(Ref<D> const& other) : m_ref(other.m_ref) {}
private:
int m_ref;
};
};
int main()
{
H::Ref<int> x;
H::Ref<double> y(x);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEgKewp0ZW1wbGF0ZSA8Y2xhc3MgQz4Kc3RydWN0IFJlZgp7CiAgICBmcmllbmQgY2xhc3MgSDsKCglSZWYoKSA6IG1fcmVmKDApIHt9CgkKCXRlbXBsYXRlPHR5cGVuYW1lIEQ+CglSZWYoUmVmPEQ+IGNvbnN0JiBvdGhlcikgOiBtX3JlZihvdGhlci5tX3JlZikge30KcHJpdmF0ZToKICAgIGludCBtX3JlZjsKfTsKCn07CgoKCmludCBtYWluKCkKewoJSDo6UmVmPGludD4geDsKCUg6OlJlZjxkb3VibGU+IHkoeCk7CgoJcmV0dXJuIDA7Cn0KCg==