Lumiera  0.pre.03
»edit your freedom«
Several< I > Class Template Reference

#include "lib/several.hpp"

Description

template<class I>
class lib::Several< I >

Abstraction: Fixed array of elements.

Typically the return type is an interface, and the Implementation wraps some datastructure holding subclasses.

Note
may only be populated through SeveralBuilder

Definition at line 156 of file several.hpp.

Public Types

using const_iterator = lib::IndexIter< const Several >
 
using iterator = lib::IndexIter< Several >
 

Public Member Functions

 Several ()=default
 usually to be created through SeveralBuilder
 
 Several (Several &&rr)
 Move-Assignment allowed...
 
I & back ()
 
iterator begin ()
 
const_iterator begin () const
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
I & front ()
 
Severaloperator= (Several &&rr)
 
I & operator[] (size_t idx)
 
I const & operator[] (size_t idx) const
 
size_t size () const
 

Friends

auto begin (Several &svl)
 
auto begin (Several const &svl)
 
auto end (Several &svl)
 
auto end (Several const &svl)
 

Protected Types

using Bucket = several::ArrayBucket< I > *
 

Protected Member Functions

bool hasReserve (size_t requiredSize, size_t newElms=1) const
 
size_t spread () const
 
size_t storageBuffSiz () const
 

Protected Attributes

Bucket data_ {nullptr}
 

Additional Inherited Members

- Private Member Functions inherited from MoveAssign
 MoveAssign (MoveAssign &&)=default
 
 MoveAssign (MoveAssign const &)=delete
 
MoveAssignoperator= (MoveAssign &&)=default
 
MoveAssignoperator= (MoveAssign const &)=delete
 
+ Inheritance diagram for Several< I >:
+ Collaboration diagram for Several< I >:

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