From 652c9dfc4960e70e00f939e280c452a44b0fdf63 Mon Sep 17 00:00:00 2001
From: Daniel Agar <daniel@agar.ca>
Date: Sat, 19 Jan 2019 13:30:53 -0500
Subject: [PATCH] containers/Array.hpp cleanup and remove data initialization

---
 src/include/containers/Array.hpp | 96 ++++++++------------------------
 1 file changed, 23 insertions(+), 73 deletions(-)

diff --git a/src/include/containers/Array.hpp b/src/include/containers/Array.hpp
index fe30bde5db..2911f605f8 100644
--- a/src/include/containers/Array.hpp
+++ b/src/include/containers/Array.hpp
@@ -38,18 +38,13 @@
 namespace px4
 {
 
-template <typename TYPE, size_t N>
+template <class T, size_t N>
 class Array
 {
-	typedef TYPE &reference;
-	typedef const TYPE &const_reference;
-	typedef TYPE *iterator;
-	typedef const TYPE *const_iterator;
 
 public:
-	Array() = default;
 
-	bool push_back(const TYPE &x)
+	bool push_back(const T &x)
 	{
 		if (_size == N) {
 			_overflow = true;
@@ -73,84 +68,39 @@ public:
 		}
 	}
 
-	reference operator[](size_t n)
+	void erase(T *item)
 	{
-		return _items[n];
-	}
-
-	const_reference operator[](size_t n) const
-	{
-		return _items[n];
-	}
-
-	reference at(size_t n)
-	{
-		return _items[n];
-	}
-
-	const_reference at(size_t n) const
-	{
-		return _items[n];
-	}
-
-	size_t size() const
-	{
-		return _size;
-	}
-
-	size_t max_size() const
-	{
-		return N;
-	}
-
-	size_t capacity() const
-	{
-		return N;
-	}
+		if (item - _items < static_cast<int>(_size)) {
+			--_size;
 
-	bool empty() const
-	{
-		return _size == 0;
+			for (T *it = item; it != &_items[_size]; ++it) {
+				*it = *(it + 1);
+			}
+		}
 	}
 
-	bool is_overflowed()
-	{
-		return _overflow;
-	}
+	T &operator[](size_t n) { return _items[n]; }
+	const T &operator[](size_t n) const { return _items[n]; }
 
-	iterator begin()
-	{
-		return &_items[0];
-	}
+	T &at(size_t n) { return _items[n]; }
+	const T &at(size_t n) const { return _items[n]; }
 
-	iterator end()
-	{
-		return &_items[_size];
-	}
+	size_t size() const { return _size; }
+	size_t max_size() const { return N; }
+	size_t capacity() const { return N; }
 
-	const_iterator begin() const
-	{
-		return &_items[0];
-	}
+	bool empty() const { return _size == 0; }
 
-	const_iterator end() const
-	{
-		return &_items[_size];
-	}
+	bool is_overflowed() { return _overflow; }
 
-	void erase(iterator item)
-	{
-		if (item - _items < static_cast<int>(_size)) {
-			--_size;
+	T *begin() { return &_items[0]; }
+	T *end() { return &_items[_size]; }
 
-			for (iterator it = item; it != &_items[_size]; ++it) {
-				*it = *(it + 1);
-			}
-		}
-	}
+	const T *begin() const { return &_items[0]; }
+	const T *end() const { return &_items[_size]; }
 
 private:
-	TYPE        _items[N] {};
+	T        _items[N];
 	size_t      _size{0};
 	bool        _overflow{false};
 };
-- 
GitLab