#include <iostream>
using namespace std;
class Test;
class Int
{
public:
operator Test();
};
class Test
{
public:
Test() {}
Test(const Int&) { cout << "Test(const Int&)" << endl; }
};
Int::operator Test()
{
cout << "Int::operator Test()" << endl;
return Test{};
}
int main()
{
Int i;
Test t1 = Test(i);
Test t2 = (Test)i;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVGVzdDsKCmNsYXNzIEludAp7CnB1YmxpYzoKICAgIG9wZXJhdG9yIFRlc3QoKTsKfTsKCmNsYXNzIFRlc3QKewpwdWJsaWM6CiAgICBUZXN0KCkge30KICAgIFRlc3QoY29uc3QgSW50JikgeyBjb3V0IDw8ICJUZXN0KGNvbnN0IEludCYpIiA8PCBlbmRsOyB9Cn07CgpJbnQ6Om9wZXJhdG9yIFRlc3QoKQp7CiAgICBjb3V0IDw8ICJJbnQ6Om9wZXJhdG9yIFRlc3QoKSIgPDwgZW5kbDsKICAgIHJldHVybiBUZXN0e307Cn0KCmludCBtYWluKCkKewoKICAgIEludCBpOwoKICAgIFRlc3QgdDEgPSBUZXN0KGkpOwogICAgVGVzdCB0MiA9IChUZXN0KWk7Cgp9Cg==