35 { __atomic_store_n(&_free_hint, hint, __ATOMIC_RELAXED); }
38 bool is_allocated(
long item)
const noexcept
39 {
return _bits[item]; }
41 long hint()
const {
return __atomic_load_n(&_free_hint, __ATOMIC_RELAXED); }
43 bool alloc(
long item)
noexcept
48 void free(
long item)
noexcept
57 : _capacity(size), _free_hint(0), _bits(mem)
62 long free_hint = hint();
64 for (
long i = free_hint; i < _capacity; ++i)
73 for (
long i = 0; i < free_hint && i < _capacity; ++i)
83 long size()
const noexcept