template<class T>
class CMemoryPool
{
public:
	CMemoryPool(int param1)
		: stuff(param1)
	{}
	
	void setValue(int value) { stuff = value; }
	
private:
    int stuff;
};

template<class T>
class CList
{
public:
    struct Entry
	{
		T data;
	};
	
	static CMemoryPool<Entry> s_pool;
	
	void DoStuffWithPool()
	{
		s_pool.setValue(2);
	}
};

template<class T>
CMemoryPool<typename CList<T>::Entry> CList<T>::s_pool(1);

int main()
{
	CList<int> list;
}