Wed, 02 Jan 2013 23:57:46 +0200
test
array.h | file | annotate | diff | comparison | revisions | |
common.h | file | annotate | diff | comparison | revisions |
--- a/array.h Wed Dec 19 22:01:42 2012 +0200 +++ b/array.h Wed Jan 02 23:57:46 2013 +0200 @@ -46,6 +46,13 @@ #define ITERATE_SUBSCRIPTS(link) \ for (link = data; link; link = link->next) +#define foreach_counter(NAME) \ + (int)(reinterpret_cast<int> (foreach_counter##NAME) / sizeof (foreach_counter##NAME)) +#define foreach(T,NAME,ARRAY) \ + if (ARRAY.size() > 0) for (T NAME = ARRAY[0], *foreach_counter##NAME = 0; \ + foreach_counter(NAME) < (int)(ARRAY.size()); \ + NAME = ARRAY[reinterpret_cast<int> (++foreach_counter##NAME) / sizeof (foreach_counter##NAME)]) + // Single element of an array template <class T> class arrayElement { public: @@ -180,4 +187,4 @@ } arrayElement<T>* data; -}; \ No newline at end of file +};