void destroy_all();
template<typename F>
- void iterate_objects(const F &);
+ void iterate_objects(const F &) const;
void *prepare_allocate();
void commit_allocate(void *);
T *create(Args &&...);
template<typename F>
- void iterate_objects(const F &func)
+ void iterate_objects(const F &func) const
{ PoolBase::iterate_objects([&func](void *ptr){ func(*static_cast<T *>(ptr)); }); }
private:
template<typename F>
-inline void PoolBase::iterate_objects(const F &func)
+inline void PoolBase::iterate_objects(const F &func) const
{
unsigned block_count = capacity/BLOCK_SIZE;
for(unsigned i=0; i<block_count; ++i)