#include <iostream>
using namespace std;
template <typename T>
class Wrapper
{
public:
static int count;
T d_wrapped;
Wrapper(T i_wrap) : d_wrapped(i_wrap)
{
++count;
}
};
template <typename T>
int Wrapper<T>::count = 0;
int main() {
Wrapper<int> wi(1);
Wrapper<int> wi2(2);
Wrapper<float> wf(1.0f);
Wrapper<int*> wip(new int());
Wrapper<float*> wfp(new float());
cout << Wrapper<int>::count << ' ' << Wrapper<float>::count << '\n' <<
Wrapper<int*>::count << ' ' << Wrapper<float*>::count << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmNsYXNzIFdyYXBwZXIKewpwdWJsaWM6CiAgICBzdGF0aWMgaW50IGNvdW50OwogICAgVCBkX3dyYXBwZWQ7CgogICAgV3JhcHBlcihUIGlfd3JhcCkgOiBkX3dyYXBwZWQoaV93cmFwKQogICAgewogICAgCSsrY291bnQ7CiAgICB9Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KaW50IFdyYXBwZXI8VD46OmNvdW50ID0gMDsKCmludCBtYWluKCkgewoJV3JhcHBlcjxpbnQ+IHdpKDEpOwoJV3JhcHBlcjxpbnQ+IHdpMigyKTsKCVdyYXBwZXI8ZmxvYXQ+IHdmKDEuMGYpOwoJCglXcmFwcGVyPGludCo+IHdpcChuZXcgaW50KCkpOwoJV3JhcHBlcjxmbG9hdCo+IHdmcChuZXcgZmxvYXQoKSk7CgkKCWNvdXQgPDwgV3JhcHBlcjxpbnQ+Ojpjb3VudCA8PCAnICcgPDwgV3JhcHBlcjxmbG9hdD46OmNvdW50IDw8ICdcbicgPDwKCQkJV3JhcHBlcjxpbnQqPjo6Y291bnQgPDwgJyAnIDw8IFdyYXBwZXI8ZmxvYXQqPjo6Y291bnQgPDwgJ1xuJzsKCXJldHVybiAwOwp9