#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;
}