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;
84#if ETL_CPP11_NOT_SUPPORTED || ETL_POOL_CPP03_CODE || ETL_USING_STLPORT
100 template <
typename T1>
103 return base_t::template
create<T>(value1);
111 template <
typename T1,
typename T2>
114 return base_t::template
create<T>(value1, value2);
122 template <
typename T1,
typename T2,
typename T3>
125 return base_t::template
create<T>(value1, value2, value3);
133 template <
typename T1,
typename T2,
typename T3,
typename T4>
136 return base_t::template
create<T>(value1, value2, value3, value4);
144 template <
typename...
Args>
156 template <
typename U>
168 template <
typename U>
187 template <
typename T>
194 using base_t::ALIGNMENT;
195 using base_t::TYPE_SIZE;
217#if ETL_CPP11_NOT_SUPPORTED || ETL_POOL_CPP03_CODE || ETL_USING_STLPORT
233 template <
typename T1>
236 return base_t::template
create<T>(value1);
244 template <
typename T1,
typename T2>
247 return base_t::template
create<T>(value1, value2);
255 template <
typename T1,
typename T2,
typename T3>
258 return base_t::template
create<T>(value1, value2, value3);
266 template <
typename T1,
typename T2,
typename T3,
typename T4>
269 return base_t::template
create<T>(value1, value2, value3, value4);
277 template <
typename...
Args>
289 template <
typename U>
301 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:200
T * allocate()
Definition pool.h:79
T * allocate()
Definition pool.h:212
T * create(const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
Definition pool.h:134
void release(const U *const p_object)
Definition pool.h:290
T * create(const T1 &value1, const T2 &value2)
Definition pool.h:112
void release(const void *const p_object)
Definition ipool.h:239
T * create(const T1 &value1)
Definition pool.h:234
T * create(const T1 &value1)
Definition pool.h:101
void destroy(const U *const p_object)
Definition pool.h:302
T * create()
Definition pool.h:90
void destroy(const U *const p_object)
Definition pool.h:169
void destroy(const U *const p_object)
Definition generic_pool.h:169
T * create(const T1 &value1, const T2 &value2)
Definition pool.h:245
T * create(const T1 &value1, const T2 &value2, const T3 &value3)
Definition pool.h:123
T * create()
Definition pool.h:223
T * create(const T1 &value1, const T2 &value2, const T3 &value3)
Definition pool.h:256
pool()
Constructor.
Definition pool.h:68
void release(const U *const p_object)
Definition pool.h:157
T * create(const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
Definition pool.h:267
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:223
pair holds two objects of arbitrary type
Definition utility.h:164