#include <iostream>
using namespace std;
template <class T, int Size = 10>
class Arr
{
public:
Arr() {
real = 0;
buff = Size;
}
template<int N>
void merge(Arr<T, N>& arr);
int getSize() {
return Size;
}
private:
int buff;
int real;
};
template<typename T, int Size>
template<int N>
void Arr<T, Size>::merge(Arr<T, N>& arr) {
cout << "Everything is OK!" << arr.getSize();
}
int main()
{
Arr<int, 5> arr1;
Arr<int, 500> arr2;
arr1.merge(arr2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDxjbGFzcyBULCBpbnQgU2l6ZSA9IDEwPgpjbGFzcyBBcnIKewpwdWJsaWM6CiAgICBBcnIoKSB7CiAgICAgICAgcmVhbCA9IDA7CiAgICAgICAgYnVmZiA9IFNpemU7CiAgICB9CgogICAgdGVtcGxhdGU8aW50IE4+CiAgICB2b2lkIG1lcmdlKEFycjxULCBOPiYgYXJyKTsKCiAgICBpbnQgZ2V0U2l6ZSgpIHsKICAgICAgICByZXR1cm4gU2l6ZTsKICAgIH0KCnByaXZhdGU6CiAgICBpbnQgYnVmZjsKICAgIGludCByZWFsOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50IFNpemU+CnRlbXBsYXRlPGludCBOPgp2b2lkIEFycjxULCBTaXplPjo6bWVyZ2UoQXJyPFQsIE4+JiBhcnIpIHsKICAgIGNvdXQgPDwgIkV2ZXJ5dGhpbmcgaXMgT0shIiA8PCBhcnIuZ2V0U2l6ZSgpOwp9CgoKaW50IG1haW4oKQp7CiAgICBBcnI8aW50LCA1PiBhcnIxOwogICAgQXJyPGludCwgNTAwPiBhcnIyOwogICAgYXJyMS5tZXJnZShhcnIyKTsKCiAgICByZXR1cm4gMDsKfQ==