#include <iostream>
using namespace std;
template<class T> class test;
template <class T>
ostream& operator << (ostream& out, const test<T>& t) {
return out<<t.a;
}
template <class T>
class test {
private:
T a;
public:
test(const T& b) : a(b) {}
friend ostream& operator<< <> (ostream&, const test<T>&);
};
int main() {
test <double> T(3.141);
cout<<T;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgdGVzdDsKCnRlbXBsYXRlIDxjbGFzcyBUPgpvc3RyZWFtJiBvcGVyYXRvciA8PCAob3N0cmVhbSYgb3V0LCBjb25zdCB0ZXN0PFQ+JiB0KSB7CglyZXR1cm4gb3V0PDx0LmE7Cn0KCnRlbXBsYXRlIDxjbGFzcyBUPgpjbGFzcyB0ZXN0IHsKCXByaXZhdGU6CglUIGE7CglwdWJsaWM6Cgl0ZXN0KGNvbnN0IFQmIGIpIDogYShiKSB7fQoJZnJpZW5kIG9zdHJlYW0mIG9wZXJhdG9yPDwgPD4gKG9zdHJlYW0mLCBjb25zdCB0ZXN0PFQ+Jik7Cn07CgppbnQgbWFpbigpIHsKCXRlc3QgPGRvdWJsZT4gVCgzLjE0MSk7Cgljb3V0PDxUOwoJcmV0dXJuIDA7Cn0=