namespace factor { struct aging_space : bump_allocator<object> { object_start_map starts; explicit aging_space(cell size, cell start) : bump_allocator<object>(size,start), starts(size,start) {} object *allot(cell size) { if(here + size > end) return NULL; object *obj = bump_allocator<object>::allot(size); starts.record_object_start_offset(obj); return obj; } }; }