Mercurial > projects > ddmd
diff dmd/Array.d @ 77:ad4792a1cfd6
more D-ification container accessing
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Sun, 29 Aug 2010 14:36:55 +0100 |
parents | 7e0d548de9e6 |
children | be2ab491772e |
line wrap: on
line diff
--- a/dmd/Array.d Sun Aug 29 09:43:40 2010 +0100 +++ b/dmd/Array.d Sun Aug 29 14:36:55 2010 +0100 @@ -184,27 +184,38 @@ class Vector(T) { public: - @property final uint dim() + @property final size_t dim() { return _dim; } - + + @property final size_t length() const + { + return _dim; + } +/* Doesn't work due to compiler BUG + @property final size_t opDollar() const + { + return _dim; + } +*/ +/* @property T *data() { return _data; } - - @property final uint allocdim() +*/ + @property final size_t allocdim() { return _allocdim; } - T opIndex(uint index) + T opIndex(size_t index) { return _data[index]; } - void opIndexAssign(T value, uint index) + void opIndexAssign(T value, size_t index) { _data[index] = value; } @@ -222,7 +233,7 @@ _data[_dim++] = elem; } - final void reserve(uint nentries) + final void reserve(size_t nentries) { //printf("Array::reserve: size = %d, offset = %d, nbytes = %d\n", size, offset, nbytes); if (allocdim - dim < nentries) { @@ -252,7 +263,7 @@ return a; } - final void setDim(uint newdim) + final void setDim(size_t newdim) { if (dim < newdim) { reserve(newdim - dim); @@ -265,7 +276,7 @@ { int result = 0; - for (int i = 0; i < _dim; i++) + for (size_t i = 0; i < _dim; i++) { result = dg(_data[i]); if (result) @@ -274,10 +285,10 @@ return result; } - int opApply(scope int delegate(ref int key, ref T value) dg) + int opApply(scope int delegate(ref size_t key, ref T value) dg) { int result = 0; - for (int i = 0; i < _dim; i++) + for (size_t i = 0; i < _dim; i++) { result = dg(i, _data[i]); if(result) @@ -291,7 +302,7 @@ insert(dim, a); } - final void insert(uint index, Vector!T a) + final void insert(size_t index, Vector!T a) { if (a !is null) { uint d = a.dim; @@ -307,6 +318,6 @@ } private: T* _data = null; - uint _dim = 0; - uint _allocdim = 0; + size_t _dim = 0; + size_t _allocdim = 0; } \ No newline at end of file