#include <iostream>
using namespace std;
template <typename T> class Array;
template <typename T> ostream& operator<<(ostream& os, const Array<T> &ar);
template <typename T>
class Array {
public:
Array() : x(10) {}
friend ostream& operator<< <>(ostream& os, const Array<T> &ar);
private:
int x;
};
template <typename T>
ostream& operator<<(ostream& os, const Array<T> &ar) {
os << "array data: " << ar.x;
return os;
}
int main() {
Array<int> arr;
cout << arr;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheTsKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3MsIGNvbnN0IEFycmF5PFQ+ICZhcik7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KY2xhc3MgQXJyYXkgewpwdWJsaWM6CiAgICBBcnJheSgpIDogeCgxMCkge30KCWZyaWVuZCBvc3RyZWFtJiBvcGVyYXRvcjw8IDw+KG9zdHJlYW0mIG9zLCBjb25zdCBBcnJheTxUPiAmYXIpOwoKcHJpdmF0ZToKCWludCB4Owp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cm9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3MsIGNvbnN0IEFycmF5PFQ+ICZhcikgewoJb3MgPDwgImFycmF5IGRhdGE6ICIgPDwgYXIueDsKCXJldHVybiBvczsKfQoKaW50IG1haW4oKSB7CglBcnJheTxpbnQ+IGFycjsKCWNvdXQgPDwgYXJyOwoJcmV0dXJuIDA7Cn0K