31#ifndef ETL_POOL_INCLUDED
32#define ETL_POOL_INCLUDED
38#define ETL_POOL_CPP03_CODE 0
52 template <
typename T, const
size_t VSize>
62 using base_t::ALIGNMENT;
63 using base_t::TYPE_SIZE;
83#if ETL_CPP11_NOT_SUPPORTED || ETL_POOL_CPP03_CODE || ETL_USING_STLPORT
99 template <
typename T1>
102 return base_t::template
create<T>(value1);
110 template <
typename T1,
typename T2>
113 return base_t::template
create<T>(value1, value2);
121 template <
typename T1,
typename T2,
typename T3>
124 return base_t::template
create<T>(value1, value2, value3);
132 template <
typename T1,
typename T2,
typename T3,
typename T4>
135 return base_t::template
create<T>(value1, value2, value3, value4);
143 template <
typename...
Args>
155 template <
typename U>
167 template <
typename U>
186 template <
typename T>
193 using base_t::ALIGNMENT;
194 using base_t::TYPE_SIZE;
216#if ETL_CPP11_NOT_SUPPORTED || ETL_POOL_CPP03_CODE || ETL_USING_STLPORT
232 template <
typename T1>
235 return base_t::template
create<T>(value1);
243 template <
typename T1,
typename T2>
246 return base_t::template
create<T>(value1, value2);
254 template <
typename T1,
typename T2,
typename T3>
257 return base_t::template
create<T>(value1, value2, value3);
265 template <
typename T1,
typename T2,
typename T3,
typename T4>
268 return base_t::template
create<T>(value1, value2, value3, value4);
276 template <
typename...
Args>
288 template <
typename U>
300 template <
typename U>
size_t size() const
Returns the number of allocated items in the pool.
Definition ipool.h:293
pool_ext(typename base_t::element *buffer, size_t size)
Constructor.
Definition pool.h:199
T * allocate()
Definition pool.h:78
T * allocate()
Definition pool.h:211
T * create(const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
Definition pool.h:133
void release(const U *const p_object)
Definition pool.h:289
T * create(const T1 &value1, const T2 &value2)
Definition pool.h:111
void release(const void *const p_object)
Definition ipool.h:239
T * create(const T1 &value1)
Definition pool.h:233
T * create(const T1 &value1)
Definition pool.h:100
void destroy(const U *const p_object)
Definition pool.h:301
T * create()
Definition pool.h:89
void destroy(const U *const p_object)
Definition pool.h:168
void destroy(const U *const p_object)
Definition generic_pool.h:169
T * create(const T1 &value1, const T2 &value2)
Definition pool.h:244
T * create(const T1 &value1, const T2 &value2, const T3 &value3)
Definition pool.h:122
T * create()
Definition pool.h:222
T * create(const T1 &value1, const T2 &value2, const T3 &value3)
Definition pool.h:255
pool()
Constructor.
Definition pool.h:68
void release(const U *const p_object)
Definition pool.h:156
T * create(const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
Definition pool.h:266
void destroy(const U *const p_object)
Definition generic_pool.h:337
Definition generic_pool.h:56
Definition generic_pool.h:213
add_rvalue_reference
Definition type_traits_generator.h:1327
is_base_of
Definition type_traits_generator.h:1252
is_same
Definition type_traits_generator.h:1041
bitset_ext
Definition absolute.h:38
Definition alignment.h:233
pair holds two objects of arbitrary type
Definition utility.h:164