00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_STL_BLOCK_LIST_H
00027 #define NL_STL_BLOCK_LIST_H
00028
00029 #include "nel/misc/types_nl.h"
00030 #include "nel/misc/stl_block_allocator.h"
00031 #include <list>
00032
00033
00034 namespace NLMISC {
00035
00036
00037
00048 template <class T>
00049 class CSTLBlockList : public std::list<T, CSTLBlockAllocator<T> >
00050 {
00051 public:
00052
00053 typedef typename NLMISC::CSTLBlockList<T>::size_type TSizeType;
00054 typedef typename NLMISC::CSTLBlockList<T>::const_iterator TBlockListConstIt;
00055
00056 explicit CSTLBlockList(CBlockMemory<T, false> *bm ) :
00057 std::list<T, CSTLBlockAllocator<T> >(CSTLBlockAllocator<T>(bm))
00058 {
00059 }
00060
00061 explicit CSTLBlockList(TSizeType n, CBlockMemory<T, false> *bm ) :
00062 std::list<T, CSTLBlockAllocator<T> >(n,T(),CSTLBlockAllocator<T>(bm))
00063 {
00064 }
00065
00066 explicit CSTLBlockList(TSizeType n, const T& v, CBlockMemory<T, false> *bm ) :
00067 std::list<T, CSTLBlockAllocator<T> >(n,v,CSTLBlockAllocator<T>(bm))
00068 {
00069 }
00070
00071
00072 CSTLBlockList(TBlockListConstIt first,TBlockListConstIt last, CBlockMemory<T, false> *bm ):
00073 std::list<T, CSTLBlockAllocator<T> >(first,last,CSTLBlockAllocator<T>(bm))
00074 {
00075 }
00076
00077 };
00078
00079
00080
00081 }
00082
00083
00084 #endif // NL_STL_BLOCK_LIST_H
00085
00086