#include <stdio.h>
template<class T>
class Wrap
{
public:
Wrap(){printf("Wrap()\n");}
~Wrap(){printf("~Wrap()\n");}
template<class U>
Wrap(const Wrap<U>&){ printf("Wrap(Wrap<U>)\n"); }
};
int main( void )
{
Wrap<int> wrapInt;
printf( "--------------\n" );
Wrap<int> wrapInt2( wrapInt );
printf( "--------------\n" );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpjbGFzcyBXcmFwCnsKcHVibGljOgoJV3JhcCgpe3ByaW50ZigiV3JhcCgpXG4iKTt9Cgl+V3JhcCgpe3ByaW50ZigifldyYXAoKVxuIik7fQoJdGVtcGxhdGU8Y2xhc3MgVT4KCVdyYXAoY29uc3QgV3JhcDxVPiYpeyBwcmludGYoIldyYXAoV3JhcDxVPilcbiIpOyB9Cn07CgppbnQgbWFpbiggdm9pZCApCnsKCVdyYXA8aW50PiB3cmFwSW50OwoJcHJpbnRmKCAiLS0tLS0tLS0tLS0tLS1cbiIgKTsKCVdyYXA8aW50PiB3cmFwSW50Miggd3JhcEludCApOwoJcHJpbnRmKCAiLS0tLS0tLS0tLS0tLS1cbiIgKTsKICAgIHJldHVybiAwOwp9