Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
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 164 of file several.hpp.

Public Types

using iterator = lib::IndexIter< Several >
 
using const_iterator = lib::IndexIter< const Several >
 
using value_type = meta::RefTraits< I >::Value
 
using reference = meta::RefTraits< I >::Reference
 
using const_reference = value_type const &
 

Public Member Functions

 Several ()=default
 usually to be created through SeveralBuilder
 
 ~Several () noexcept
 
 Several (Several &&rr)
 Move-Assignment allowed...
 
Severaloperator= (Several &&rr)
 
 operator std::string () const
 generic string rendering delegated to util::toString(elm)
 
size_t size () const
 
bool empty () const
 
I & operator[] (size_t idx)
 
I const & operator[] (size_t idx) const
 
I & front ()
 
I & back ()
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 

Friends

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

Protected Types

using Bucket = several::ArrayBucket< I > *
 

Protected Member Functions

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

Protected Attributes

Bucket data_ {nullptr}
 

Additional Inherited Members

- Private Member Functions inherited from MoveAssign
 ~MoveAssign ()=default
 
 MoveAssign ()=default
 
 MoveAssign (MoveAssign &&)=default
 
 MoveAssign (MoveAssign const &)=delete
 
MoveAssignoperator= (MoveAssign &&)=default
 
MoveAssignoperator= (MoveAssign const &)=delete
 

Constructor & Destructor Documentation

◆ Several() [1/2]

template<class I >
Several ( )
default

usually to be created through SeveralBuilder

◆ ~Several()

template<class I >
~Several ( )
inlinenoexcept

Definition at line 175 of file several.hpp.

References Several< I >::data_, and SelfDestructor< TAR >::destroy().

+ Here is the call graph for this function:

◆ Several() [2/2]

template<class I >
Several ( Several< I > &&  rr)
inline

Move-Assignment allowed...

Definition at line 180 of file several.hpp.

References Several< I >::data_.

Member Typedef Documentation

◆ Bucket

template<class I >
using Bucket = several::ArrayBucket<I>*
protected

Definition at line 168 of file several.hpp.

◆ iterator

template<class I >
using iterator = lib::IndexIter<Several>

Definition at line 221 of file several.hpp.

◆ const_iterator

template<class I >
using const_iterator = lib::IndexIter<const Several>

Definition at line 222 of file several.hpp.

◆ value_type

template<class I >
using value_type = meta::RefTraits<I>::Value

Definition at line 234 of file several.hpp.

◆ reference

template<class I >
using reference = meta::RefTraits<I>::Reference

Definition at line 235 of file several.hpp.

◆ const_reference

template<class I >
using const_reference = value_type const&

Definition at line 236 of file several.hpp.

Member Function Documentation

◆ operator=()

template<class I >
Several & operator= ( Several< I > &&  rr)
inline

Definition at line 184 of file several.hpp.

References Several< I >::data_.

◆ operator std::string()

template<class I >
operator std::string ( ) const
inlineexplicit

generic string rendering delegated to util::toString(elm)

Definition at line 269 of file several.hpp.

References util::toStringBracket().

+ Here is the call graph for this function:

◆ size()

template<class I >
size_t size ( ) const
inline

Definition at line 194 of file several.hpp.

References ArrayBucket< I >::cnt, and Several< I >::data_.

Referenced by SeveralBuilder_test::check_Builder(), SeveralBuilder_test::check_CustomAllocator(), SeveralBuilder_test::check_ElementStorage(), ProcNode::getPort(), Several< I >::hasReserve(), ProcID::ArgModel::inArity(), and ProcID::ArgModel::outArity().

+ Here is the caller graph for this function:

◆ empty()

template<class I >
bool empty ( ) const
inline

Definition at line 200 of file several.hpp.

References Several< I >::data_.

Referenced by ProcID::ArgModel::hasInArgs(), ProcID::ArgModel::hasOutArgs(), and ProcNodeDiagnostic::isSrc().

+ Here is the caller graph for this function:

◆ operator[]() [1/2]

template<class I >
I & operator[] ( size_t  idx)
inline

Definition at line 206 of file several.hpp.

References Several< I >::data_, and ArrayBucket< I >::subscript().

Referenced by Several< I >::back(), and Several< I >::front().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator[]() [2/2]

template<class I >
I const & operator[] ( size_t  idx) const
inline

Definition at line 213 of file several.hpp.

◆ front()

template<class I >
I & front ( )
inline

Definition at line 218 of file several.hpp.

References Several< I >::operator[]().

Referenced by SeveralBuilder_test::check_ElementStorage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ back()

template<class I >
I & back ( )
inline

Definition at line 219 of file several.hpp.

References ArrayBucket< I >::cnt, Several< I >::data_, and Several< I >::operator[]().

Referenced by SeveralBuilder_test::check_CustomAllocator(), and SeveralBuilder_test::check_ElementStorage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ begin() [1/2]

template<class I >
iterator begin ( )
inline

Definition at line 224 of file several.hpp.

◆ end() [1/2]

template<class I >
iterator end ( )
inline

Definition at line 225 of file several.hpp.

◆ begin() [2/2]

template<class I >
const_iterator begin ( ) const
inline

Definition at line 226 of file several.hpp.

◆ end() [2/2]

template<class I >
const_iterator end ( ) const
inline

Definition at line 227 of file several.hpp.

◆ spread()

template<class I >
size_t spread ( ) const
inlineprotected

Definition at line 241 of file several.hpp.

References Several< I >::data_, and ArrayBucket< I >::spread.

Referenced by SeveralBuilder< I, E, POL >::adjustStorage(), and Several< I >::hasReserve().

+ Here is the caller graph for this function:

◆ storageBuffSiz()

template<class I >
size_t storageBuffSiz ( ) const
inlineprotected

Definition at line 247 of file several.hpp.

References ArrayBucket< I >::buffSiz, and Several< I >::data_.

◆ hasReserve()

template<class I >
bool hasReserve ( size_t  requiredSize,
size_t  newElms = 1 
) const
inlineprotected

Definition at line 253 of file several.hpp.

References ArrayBucket< I >::buffSiz, Several< I >::data_, Several< I >::size(), and Several< I >::spread().

+ Here is the call graph for this function:

Member Data Documentation

◆ data_

Friends And Related Symbol Documentation

◆ begin [1/2]

template<class I >
auto begin ( Several< I > &  svl)
friend

Definition at line 229 of file several.hpp.

◆ end [1/2]

template<class I >
auto end ( Several< I > &  svl)
friend

Definition at line 230 of file several.hpp.

◆ begin [2/2]

template<class I >
auto begin ( Several< I > const &  svl)
friend

Definition at line 231 of file several.hpp.

◆ end [2/2]

template<class I >
auto end ( Several< I > const &  svl)
friend

Definition at line 232 of file several.hpp.

+ Inheritance diagram for Several< I >:
+ Collaboration diagram for Several< I >:

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