#include <iostream>
template <typename Type>
class SomeClass {
Type p;
public:
SomeClass(Type x) { p = x; }
template <typename Type2>
SomeClass(SomeClass<Type2> k) { p = k.GetP(); }
Type GetP() { return p; }
};
int main()
{
SomeClass<double> c(2.4);
SomeClass<int> c1(c);
std::cout << c1.GetP() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGU+CmNsYXNzIFNvbWVDbGFzcyB7CiAgICBUeXBlIHA7CnB1YmxpYzoKICAgIFNvbWVDbGFzcyhUeXBlIHgpIHsgcCA9IHg7IH0KICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlMj4KICAgICAgICBTb21lQ2xhc3MoU29tZUNsYXNzPFR5cGUyPiBrKSB7IHAgPSBrLkdldFAoKTsgfQogICAgVHlwZSBHZXRQKCkgeyByZXR1cm4gcDsgfQp9OwoKaW50IG1haW4oKQp7CiAgICBTb21lQ2xhc3M8ZG91YmxlPiBjKDIuNCk7CiAgICBTb21lQ2xhc3M8aW50PiBjMShjKTsKICAgIHN0ZDo6Y291dCA8PCBjMS5HZXRQKCkgPDwgc3RkOjplbmRsOwoKICAgIHJldHVybiAwOwp9