#pragma once template class cDeleter { public: static void Delete(T) {}; }; template> class cQueue { public: cQueue(int warnsize); cQueue(cQueue& queue); ~cQueue(); void EnqueueItem(T item); bool TryDequeueItem(T& item); T DequeueItem(); void BlockTillEmpty(cEvent CancelationEvent); void Clear(); int Size(); private: int warnsize; std::list contents; }; //template classes must be implemented in the header #include "Queue.inc"