Mercurial > projects > ldc
view gen/utils.h @ 1241:fc579f389f9a
!ClassInfo instances were not mutable, this is necessary for .classinfo based locking to work. !ModuleInfo generation was commented out as well.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Fri, 17 Apr 2009 00:54:20 +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