From 36a80c33a9159acbf3b680018659f6cdddaebcc1 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 31 Dec 2014 19:07:25 +1100 Subject: [PATCH] pool: use size_t for allocated sizes --- pool.hpp | 19 ++++++++++++++----- pool.ipp | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pool.hpp b/pool.hpp index 2f187b9f..900c1b8f 100644 --- a/pool.hpp +++ b/pool.hpp @@ -22,6 +22,8 @@ #include "nocopy.hpp" +#include + namespace util { template class pool : public nocopy { @@ -31,20 +33,27 @@ namespace util { node *_chain; }; - node *m_head; - node *m_next; - unsigned int m_capacity; + node *m_head; + node *m_next; + size_t m_capacity; public: pool (unsigned int _capacity); ~pool (); - unsigned int capacity (void) const; - + // Data management template T* acquire (Args&... args); void release (T *data); + + size_t capacity (void) const; + + // Indexing + size_t index (const T*) const; + + T& operator[] (size_t idx); + const T& operator[] (size_t idx) const; }; } diff --git a/pool.ipp b/pool.ipp index 0c4c3604..693b419b 100644 --- a/pool.ipp +++ b/pool.ipp @@ -55,7 +55,7 @@ namespace util { template - unsigned int + size_t pool::capacity (void) const { return m_capacity; }