std.allocator ready for some abuse

Sönke Ludwig sludwig at outerproduct.org
Thu Nov 7 05:15:02 PST 2013


Am 07.11.2013 11:32, schrieb Namespace:
> How about a stack allocator like this:
> ----
> enum StackSize = 8192;
>
> struct Stack {
>      static Stack it;
>
>      void[StackSize] _buffer = void;
>      size_t _bufUsage;
>
>      void[] take(size_t N) {
>          if ((this._bufUsage + N) <= StackSize) {
>              scope(exit) this._bufUsage += N;
>
>              return _buffer[this._bufUsage .. this._bufUsage + N];
>          }
>
>          return null;
>      }
>
>      void reset() {
>          this._bufUsage = 0;
>      }
> }
> ----
> Would that fit in std.allocator?

That's std.allocator.InSituRegion, just that is misses the reset() method.


More information about the Digitalmars-d mailing list