From 673bdae75485d14f759af597c3c62b99601f9a43 Mon Sep 17 00:00:00 2001 From: peterb12 Date: Thu, 21 Jul 2005 02:34:44 +0000 Subject: Initial revision git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3 c06c8d41-db1a-0410-9941-cceddc491573 --- trunk/source/FixAry.h | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 trunk/source/FixAry.h (limited to 'trunk/source/FixAry.h') diff --git a/trunk/source/FixAry.h b/trunk/source/FixAry.h new file mode 100644 index 0000000000..58db5bb58d --- /dev/null +++ b/trunk/source/FixAry.h @@ -0,0 +1,73 @@ +/* + * File: FixAry.h + * Summary: Fixed size 2D vector class that asserts if you do something bad. + * Written by: Jesse Jones + * + * Change History (most recent first): + * + * <1> 6/16/00 JDJ Created + */ + +#ifndef FIXARY_H +#define FIXARY_H + +#include "FixVec.h" + + +// ========================================================================== +// class FixedArray +// ========================================================================== +template class FixedArray { + +//----------------------------------- +// Types +// +public: + typedef TYPE value_type; + typedef TYPE& reference; + typedef const TYPE& const_reference; + typedef TYPE* pointer; + typedef const TYPE* const_pointer; + + typedef unsigned long size_type; + typedef long difference_type; + + typedef FixedVector Column; // operator[] needs to return one of these to avoid breaking client code (if inlining is on there won't be a speed hit) + +//----------------------------------- +// Initialization/Destruction +// +public: + ~FixedArray() {} + + FixedArray() {} + +private: + FixedArray(const FixedArray& rhs); + + FixedArray& operator=(const FixedArray& rhs); + +//----------------------------------- +// API +// +public: + // ----- Size ----- + bool empty() const {return WIDTH == 0 || HEIGHT == 0;} + int size() const {return WIDTH*HEIGHT;} + + int width() const {return WIDTH;} + int height() const {return HEIGHT;} + + // ----- Access ----- + Column& operator[](unsigned long index) {return mData[index];} + const Column& operator[](unsigned long index) const {return mData[index];} + +//----------------------------------- +// Member Data +// +protected: + FixedVector mData; +}; + + +#endif // FIXARY_H -- cgit v1.2.3-54-g00ecf