Mercurial > projects > ldc
view gen/utils.h @ 1229:fafe7c8d6734
Now compiles again, and fixed type of the Interface[N] ClassInfo symbol.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Thu, 16 Apr 2009 11:01:49 +0200 |
parents | 79758fd2f48a |
children | ec1d9dc1d32a |
line wrap: on
line source
#ifndef __LDC_GEN_UTILS_H__ #define __LDC_GEN_UTILS_H__ #include "root.h" /// Very simple templated iterator for DMD ArrayS. template<class C> struct ArrayIter { Array& array; size_t index; ArrayIter(Array& arr, size_t idx = 0) : array(arr), index(idx) { } bool done() { return index >= array.dim; } bool more() { return index < array.dim; } C* get() { return static_cast<C*>(array.data[index]); } C* operator->() { return static_cast<C*>(array.data[index]); } void next() { ++index; } }; // some aliases typedef ArrayIter<Dsymbol> DsymbolIter; typedef ArrayIter<FuncDeclaration> FuncDeclarationIter; typedef ArrayIter<VarDeclaration> VarDeclarationIter; #endif