diff options
author | Johannes Schickel | 2012-02-22 20:07:40 +0100 |
---|---|---|
committer | Johannes Schickel | 2012-02-22 20:07:40 +0100 |
commit | 7d8da240820fa9cafc8e3090c007051a29d8d79f (patch) | |
tree | eb9ed52bb77135cbc92971852d30114a522e70d4 | |
parent | 417cd7625c44bcae1b40c0a0b86ea6592ffd813c (diff) | |
download | scummvm-rg350-7d8da240820fa9cafc8e3090c007051a29d8d79f.tar.gz scummvm-rg350-7d8da240820fa9cafc8e3090c007051a29d8d79f.tar.bz2 scummvm-rg350-7d8da240820fa9cafc8e3090c007051a29d8d79f.zip |
COMMON: Add a size_type to Stack and FixedStack.
-rw-r--r-- | common/stack.h | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/common/stack.h b/common/stack.h index 0d13049f2e..235715dac3 100644 --- a/common/stack.h +++ b/common/stack.h @@ -30,12 +30,11 @@ namespace Common { /** * Extremly simple fixed size stack class. */ -template<class T, int MAX_SIZE = 10> +template<class T, uint MAX_SIZE = 10> class FixedStack { -protected: - T _stack[MAX_SIZE]; - int _size; public: + typedef uint size_type; + FixedStack<T, MAX_SIZE>() : _size(0) {} bool empty() const { @@ -61,17 +60,20 @@ public: --_size; return tmp; } - int size() const { + size_type size() const { return _size; } - T &operator[](int i) { - assert(0 <= i && i < MAX_SIZE); + T &operator[](size_type i) { + assert(i < MAX_SIZE); return _stack[i]; } - const T &operator[](int i) const { - assert(0 <= i && i < MAX_SIZE); + const T &operator[](size_type i) const { + assert(i < MAX_SIZE); return _stack[i]; } +protected: + T _stack[MAX_SIZE]; + size_type _size; }; @@ -84,6 +86,8 @@ private: Array<T> _stack; public: + typedef typename Array<T>::size_type size_type; + Stack<T>() {} Stack<T>(const Array<T> &stackContent) : _stack(stackContent) {} @@ -107,13 +111,13 @@ public: _stack.pop_back(); return tmp; } - int size() const { + size_type size() const { return _stack.size(); } - T &operator[](int i) { + T &operator[](size_type i) { return _stack[i]; } - const T &operator[](int i) const { + const T &operator[](size_type i) const { return _stack[i]; } }; |