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.

Reply via email to