diff --git a/src/libCom/cxxTemplates/tsFreeList.h b/src/libCom/cxxTemplates/tsFreeList.h index fc7c983b5..57dc39846 100644 --- a/src/libCom/cxxTemplates/tsFreeList.h +++ b/src/libCom/cxxTemplates/tsFreeList.h @@ -69,18 +69,9 @@ # pragma warning ( disable : 4291 ) #endif -template < class T, unsigned DEBUG_LEVEL > -union tsFreeListItem { -public: - char pad[ sizeof ( T ) ]; - tsFreeListItem < T, DEBUG_LEVEL > *pNext; -}; - +template < class T, unsigned DEBUG_LEVEL > union tsFreeListItem; template < class T, unsigned N = 0x400, unsigned DEBUG_LEVEL = 0u > -struct tsFreeListChunk { - tsFreeListItem < T, DEBUG_LEVEL > items [N]; - tsFreeListChunk < T, N, DEBUG_LEVEL > *pNext; -}; + struct tsFreeListChunk; template < class T, unsigned N = 0x400, unsigned DEBUG_LEVEL = 0u > class tsFreeList { @@ -95,6 +86,19 @@ private: tsFreeListItem < T, DEBUG_LEVEL > * allocateFromNewChunk (); }; +template < class T, unsigned DEBUG_LEVEL > +union tsFreeListItem { +public: + char pad[ sizeof ( T ) ]; + tsFreeListItem < T, DEBUG_LEVEL > *pNext; +}; + +template < class T, unsigned N = 0x400, unsigned DEBUG_LEVEL = 0u > +struct tsFreeListChunk { + tsFreeListItem < T, DEBUG_LEVEL > items [N]; + tsFreeListChunk < T, N, DEBUG_LEVEL > *pNext; +}; + template < class T, unsigned N, unsigned DEBUG_LEVEL > inline tsFreeList < T, N, DEBUG_LEVEL > :: tsFreeList () : pFreeList ( 0 ), pChunkList ( 0 ) {}