CNORXZ
Container with Native Operation Routines and Expressions
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
CNORXZ::MRange< Ranges > Class Template Reference

#include <mrange.h>

Inheritance diagram for CNORXZ::MRange< Ranges >:
CNORXZ::RangeInterface< MRange< Ranges... > > CNORXZ::RangeBase

Public Types

typedef RangeBase RB
 
typedef MIndex< typename Ranges::IndexType... > IndexType
 
typedef Tuple< typename Ranges::IndexType::MetaType... > MetaType
 
- Public Types inherited from CNORXZ::RangeInterface< MRange< Ranges... > >
typedef RangeBase RB
 
- Public Types inherited from CNORXZ::RangeBase
typedef DIndex IndexType
 

Public Member Functions

virtual RangePtr sub (SizeT num) const override final
 
virtual MArray< RangePtr > sub () const override final
 
virtual SizeT size () const override final
 
virtual SizeT dim () const override final
 
virtual String stringMeta (SizeT pos) const override final
 
virtual const TypeInfo & type () const override final
 
virtual const TypeInfo & metaType () const override final
 
virtual RangePtr extend (const RangePtr &r) const override final
 
decltype(auto) space () const
 
const MetaType get (SizeT pos) const
 
SizeT getMeta (const MetaType &metaPos) const
 
- Public Member Functions inherited from CNORXZ::RangeInterface< MRange< Ranges... > >
decltype(auto) begin () const
 
decltype(auto) end () const
 
virtual DIndex index (SizeT pos) const override final
 
- Public Member Functions inherited from CNORXZ::RangeBase
virtual ~RangeBase ()=default
 
bool operator== (const RangeBase &in) const
 
bool operator!= (const RangeBase &in) const
 
Uuid id () const
 
DIndex begin () const
 
DIndex end () const
 

Public Attributes

friend MRangeFactory< Ranges... >
 
- Public Attributes inherited from CNORXZ::RangeBase
friend RangeFactoryBase
 

Static Public Attributes

static constexpr SizeT NR = sizeof...(Ranges)
 

Protected Member Functions

 MRange ()=default
 
 MRange (const MRange &in)=delete
 
MRange & operator= (const MRange &in)=delete
 
 MRange (const Tuple< Sptr< Ranges >... > &rs)
 
virtual Vector< Uuid > key () const override final
 
- Protected Member Functions inherited from CNORXZ::RangeInterface< MRange< Ranges... > >
 RangeInterface ()=default
 
- Protected Member Functions inherited from CNORXZ::RangeBase
 RangeBase ()
 

Protected Attributes

Tuple< Sptr< Ranges >... > mRs
 
Arr< RangePtr, NR > mA
 
- Protected Attributes inherited from CNORXZ::RangeBase
Uuid mId = {0,0}
 
Wptr< RangeBase > mThis
 

Detailed Description

template<class... Ranges>
class CNORXZ::MRange< Ranges >

Multi Range with compile-time fixed number of sub-ranges of compile-time fixed type.

Definition at line 342 of file mrange.h.

Member Typedef Documentation

◆ IndexType

template<class... Ranges>
typedef MIndex<typename Ranges::IndexType...> CNORXZ::MRange< Ranges >::IndexType

Definition at line 346 of file mrange.h.

◆ MetaType

template<class... Ranges>
typedef Tuple<typename Ranges::IndexType::MetaType...> CNORXZ::MRange< Ranges >::MetaType

Definition at line 347 of file mrange.h.

◆ RB

template<class... Ranges>
typedef RangeBase CNORXZ::MRange< Ranges >::RB

Definition at line 345 of file mrange.h.

Constructor & Destructor Documentation

◆ MRange() [1/3]

template<class... Ranges>
CNORXZ::MRange< Ranges >::MRange ( )
protecteddefault

Dafault constructor

◆ MRange() [2/3]

template<class... Ranges>
CNORXZ::MRange< Ranges >::MRange ( const MRange< Ranges > & in)
protecteddelete

◆ MRange() [3/3]

template<class... Ranges>
CNORXZ::MRange< Ranges >::MRange ( const Tuple< Sptr< Ranges >... > & rs)
protected

Construct from sub-ranges

Parameters
rsTuple of pointers to sub-ranges.

Definition at line 682 of file mrange.cc.h.

Member Function Documentation

◆ dim()

template<class... Ranges>
SizeT CNORXZ::MRange< Ranges >::dim ( ) const
finaloverridevirtual

Range dimension. Returns the range's dimension, which is equivalent to the number of sub-ranges. If a sub-range has non-zero dimension this is NOT taken into account!

Implements CNORXZ::RangeBase.

Definition at line 720 of file mrange.cc.h.

◆ extend()

template<class... Ranges>
RangePtr CNORXZ::MRange< Ranges >::extend ( const RangePtr & r) const
finaloverridevirtual

Create extended range. Creates a new range consisting of the meta data spaces of this range and the range r

Parameters
rshared pointer to range used for extension

Implements CNORXZ::RangeBase.

Definition at line 763 of file mrange.cc.h.

◆ get()

template<class... Ranges>
const MRange< Ranges... >::MetaType CNORXZ::MRange< Ranges >::get ( SizeT pos) const

Get sub-range.

Parameters
posPosition of the sub-range.

Definition at line 750 of file mrange.cc.h.

◆ getMeta()

template<class... Ranges>
SizeT CNORXZ::MRange< Ranges >::getMeta ( const MetaType & metaPos) const

Get lexicographic position according to the given meta data value.

Parameters
metaPosMeta data value.

Definition at line 756 of file mrange.cc.h.

◆ key()

template<class... Ranges>
Vector< Uuid > CNORXZ::MRange< Ranges >::key ( ) const
finaloverrideprotectedvirtual

Implements CNORXZ::RangeBase.

Definition at line 776 of file mrange.cc.h.

◆ metaType()

template<class... Ranges>
const TypeInfo & CNORXZ::MRange< Ranges >::metaType ( ) const
finaloverridevirtual

The type of the range's meta data

Implements CNORXZ::RangeBase.

Definition at line 738 of file mrange.cc.h.

◆ operator=()

template<class... Ranges>
MRange & CNORXZ::MRange< Ranges >::operator= ( const MRange< Ranges > & in)
protecteddelete

◆ size()

template<class... Ranges>
SizeT CNORXZ::MRange< Ranges >::size ( ) const
finaloverridevirtual

Range size

Implements CNORXZ::RangeBase.

Definition at line 713 of file mrange.cc.h.

◆ space()

template<class... Ranges>
decltype(auto) CNORXZ::MRange< Ranges >::space ( ) const

Get sub-ranges.

Definition at line 744 of file mrange.cc.h.

◆ stringMeta()

template<class... Ranges>
String CNORXZ::MRange< Ranges >::stringMeta ( SizeT pos) const
finaloverridevirtual

Meta data in string format at lexicographic position pos.

Parameters
possize type argument

Implements CNORXZ::RangeBase.

Definition at line 726 of file mrange.cc.h.

◆ sub() [1/2]

template<class... Ranges>
MArray< RangePtr > CNORXZ::MRange< Ranges >::sub ( ) const
finaloverridevirtual

Access sub-ranges. In the case the range is multi-dimensional this function returns an array of all sub-ranges (empty is one-dimensional)

Reimplemented from CNORXZ::RangeBase.

Definition at line 695 of file mrange.cc.h.

◆ sub() [2/2]

template<class... Ranges>
RangePtr CNORXZ::MRange< Ranges >::sub ( SizeT num) const
finaloverridevirtual

Access sub-ranges. In the case the range is multi-dimensional the num-th sub-range can be accessed through this function

Parameters
numsize type argument

Reimplemented from CNORXZ::RangeBase.

Definition at line 688 of file mrange.cc.h.

◆ type()

template<class... Ranges>
const TypeInfo & CNORXZ::MRange< Ranges >::type ( ) const
finaloverridevirtual

Range type

Implements CNORXZ::RangeBase.

Definition at line 732 of file mrange.cc.h.

Member Data Documentation

◆ mA

template<class... Ranges>
Arr<RangePtr,NR> CNORXZ::MRange< Ranges >::mA
protected

Array of abstract base pointers to sub-ranges. Redundant to mRs

Definition at line 388 of file mrange.h.

◆ MRangeFactory< Ranges... >

template<class... Ranges>
friend CNORXZ::MRange< Ranges >::MRangeFactory< Ranges... >

Definition at line 350 of file mrange.h.

◆ mRs

template<class... Ranges>
Tuple<Sptr<Ranges>...> CNORXZ::MRange< Ranges >::mRs
protected

Tuple of pointers to sub-ranges.

Definition at line 387 of file mrange.h.

◆ NR

template<class... Ranges>
constexpr SizeT CNORXZ::MRange< Ranges >::NR = sizeof...(Ranges)
staticconstexpr

Definition at line 348 of file mrange.h.


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