From a7e3f09f7c39c509939ebde387d9e04817355c77 Mon Sep 17 00:00:00 2001 From: skidd13 Date: Thu, 19 Jun 2008 09:33:50 +0000 Subject: [PATCH] (svn r13574) -Doc: Document the small vector template class --- src/misc/smallvec.h | 60 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/src/misc/smallvec.h b/src/misc/smallvec.h index 9fc212dbef..477a931785 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 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];