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;
}
dGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgQ01lbW9yeVBvb2wKewpwdWJsaWM6CglDTWVtb3J5UG9vbChpbnQgcGFyYW0xKQoJCTogc3R1ZmYocGFyYW0xKQoJe30KCQoJdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgc3R1ZmYgPSB2YWx1ZTsgfQoJCnByaXZhdGU6CiAgICBpbnQgc3R1ZmY7Cn07Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpjbGFzcyBDTGlzdAp7CnB1YmxpYzoKICAgIHN0cnVjdCBFbnRyeQoJewoJCVQgZGF0YTsKCX07CgkKCXN0YXRpYyBDTWVtb3J5UG9vbDxFbnRyeT4gc19wb29sOwoJCgl2b2lkIERvU3R1ZmZXaXRoUG9vbCgpCgl7CgkJc19wb29sLnNldFZhbHVlKDIpOwoJfQp9OwoKdGVtcGxhdGU8Y2xhc3MgVD4KQ01lbW9yeVBvb2w8dHlwZW5hbWUgQ0xpc3Q8VD46OkVudHJ5PiBDTGlzdDxUPjo6c19wb29sKDEpOwoKaW50IG1haW4oKQp7CglDTGlzdDxpbnQ+IGxpc3Q7Cn0=