in dispenso/concurrent_object_arena.h [328:341]
void constructObjects(const Index beginIndex, const Index endIndex) {
const Index startBuffer = beginIndex >> kLog2BuffSize;
const Index endBuffer = endIndex >> kLog2BuffSize;
Index bufStart = beginIndex & kMask;
for (Index b = startBuffer; b <= endBuffer; ++b) {
T* buf = buffers_.load(std::memory_order_relaxed)[b];
const Index bufEnd = b == endBuffer ? (endIndex & kMask) : kBufferSize;
for (Index i = bufStart; i < bufEnd; ++i)
new (buf + i) T();
bufStart = 0;
}
}