Lumiera  0.pre.03
»edit your freedom«
ArrayBucket< I > Struct Template Reference

#include "lib/several.hpp"

Description

template<class I>
struct lib::several::ArrayBucket< I >

Metadata record placed immediately before the data storage.

Remarks
SeveralBuilder uses a custom allocation scheme to acquire a sufficiently sized allocation for ArrayBucket + the data.

Definition at line 105 of file several.hpp.

Public Types

using Deleter = std::function< void(ArrayBucket *)>
 

Public Member Functions

 ArrayBucket (size_t storageSize, size_t buffStart, size_t elmSize=sizeof(I))
 
size_t getAllocSize () const
 
std::byte * storage ()
 data storage area starts immediately behind the ArrayBucket
 
I & subscript (size_t idx)
 perform unchecked access into the storage area
 
- Public Member Functions inherited from SelfDestructor< ArrayBucket< I > >
void destroy ()
 
auto getDtor () const
 
void installDestructor (FUN &&dtor)
 
bool isArmed () const
 
ArrayBucket< I > * target ()
 

Static Public Attributes

static constexpr size_t storageOffset = sizeof(ArrayBucket)
 

Public Attributes

size_t buffOffset
 
size_t buffSiz
 
size_t cnt
 
size_t spread
 
+ Inheritance diagram for ArrayBucket< I >:
+ Collaboration diagram for ArrayBucket< I >:

The documentation for this struct was generated from the following file: