summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskidd13 <skidd13@openttd.org>2008-06-19 09:33:50 +0000
committerskidd13 <skidd13@openttd.org>2008-06-19 09:33:50 +0000
commitc4cc5cdf3b2f8f349c723de98538adec45db9c55 (patch)
tree9ef9eb1c8a56a2e8b424b22cd6ed458d0aa14b35 /src
parente7f2765f4c52f8182bdbef1becb1c889bbe78485 (diff)
downloadopenttd-c4cc5cdf3b2f8f349c723de98538adec45db9c55.tar.xz
(svn r13574) -Doc: Document the small vector template class
Diffstat (limited to 'src')
-rw-r--r--src/misc/smallvec.h60
1 files changed, 57 insertions, 3 deletions
diff --git a/src/misc/smallvec.h b/src/misc/smallvec.h
index 9fc212dbe..477a93178 100644
--- a/src/misc/smallvec.h
+++ b/src/misc/smallvec.h
@@ -8,11 +8,21 @@
#include "../core/alloc_func.hpp"
#include "../core/math_func.hpp"
+/**
+ * Simple vector template class.
+ *
+ * @note There are no asserts in the class so you have
+ * to care about that you grab an item which is
+ * inside the list.
+ *
+ * @param T The type of the items stored
+ * @param S The steps of allocation
+ */
template <typename T, uint S>
struct SmallVector {
- T *data;
- uint items;
- uint capacity;
+ T *data; ///< The pointer to the first item
+ uint items; ///< The number of items stored
+ uint capacity; ///< The avalible space for storing items
SmallVector() : data(NULL), items(0), capacity(0) { }
@@ -65,41 +75,85 @@ struct SmallVector {
return this->items;
}
+ /**
+ * Get the pointer to the first item (const)
+ *
+ * @return the pointer to the first item
+ */
const T *Begin() const
{
return this->data;
}
+ /**
+ * Get the pointer to the first item
+ *
+ * @return the pointer to the first item
+ */
T *Begin()
{
return this->data;
}
+ /**
+ * Get the pointer behind the last valid item (const)
+ *
+ * @return the pointer behind the last valid item
+ */
const T *End() const
{
return &this->data[this->items];
}
+ /**
+ * Get the pointer behind the last valid item
+ *
+ * @return the pointer behind the last valid item
+ */
T *End()
{
return &this->data[this->items];
}
+ /**
+ * Get the pointer to item "number" (const)
+ *
+ * @param index the position of the item
+ * @return the pointer to the item
+ */
const T *Get(uint index) const
{
return &this->data[index];
}
+ /**
+ * Get the pointer to item "number"
+ *
+ * @param index the position of the item
+ * @return the pointer to the item
+ */
T *Get(uint index)
{
return &this->data[index];
}
+ /**
+ * Get item "number" (const)
+ *
+ * @param index the positon of the item
+ * @return the item
+ */
const T &operator[](uint index) const
{
return this->data[index];
}
+ /**
+ * Get item "number"
+ *
+ * @param index the positon of the item
+ * @return the item
+ */
T &operator[](uint index)
{
return this->data[index];