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< RangePtrsub () 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 TypeInfotype () const override final
 
virtual const TypeInfometaType () const override final
 
virtual RangePtr extend (const RangePtr &r) const override final
 
decltype(autospace () 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
 
MRangeoperator= (const MRange &in)=delete
 
 MRange (const Tuple< Sptr< Ranges >... > &rs)
 
virtual Vector< Uuidkey () 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, NRmA
 
- Protected Attributes inherited from CNORXZ::RangeBase
Uuid mId = {0,0}
 
Wptr< RangeBasemThis
 

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: