Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Abstraction interface: array-like random access by subscript.
This is a data structure abstraction suitable for performance critical code. It is used pervasively in the backbone of the Lumiera »Render Node Network«.
std::vector
leaks implementation details of the contained data and generally exposes way too much operations; it is not possible to abstract away the concrete element type. Moreover, using vector
with a custom allocator is surprisingly complicated, requires to embody the concrete allocator type into the container type and requires to store an additional back-link whenever the allocator is not a monostate. The intended use case calls for a large number of small collection elements, which are repeatedly bulk- allocated and deallocated.ArrayBucket<I>
, managed by the allocator. In its simplest form, this storage is heap allocated and automatically deleted. Definition in file several.hpp.
Classes | |
struct | ArrayBucket< I > |
Metadata record placed immediately before the data storage. More... | |
class | SelfDestructor< TAR > |
class | Several< I > |
Abstraction: Fixed array of elements. More... | |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |