diff options
Diffstat (limited to 'src/StaticStack.h')
| -rw-r--r-- | src/StaticStack.h | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/StaticStack.h b/src/StaticStack.h deleted file mode 100644 index 598febce..00000000 --- a/src/StaticStack.h +++ /dev/null @@ -1,43 +0,0 @@ -#include <array> -#include <cstddef> - -template <typename T, size_t N> -class StaticStack { -public: - T Pop(); - void Push(T element); - void Reset(); - T Top(); - -private: - std::array<T, N> elementArray; - // Number of elements in stack, points to the next empty slot - size_t stackPointer = 0; -}; - -// Returns random data when popping from empty array. -template <typename T, size_t N> -T StaticStack<T, N>::Pop() { - if (stackPointer > 0) { - stackPointer--; - } - return elementArray[stackPointer]; -} - -template <typename T, size_t N> -void StaticStack<T, N>::Push(T element) { - if (stackPointer < elementArray.size()) { - elementArray[stackPointer] = element; - stackPointer++; - } -} - -template <typename T, size_t N> -void StaticStack<T, N>::Reset() { - stackPointer = 0; -} - -template <typename T, size_t N> -T StaticStack<T, N>::Top() { - return elementArray[stackPointer - 1]; -} |
