12#ifndef __cxz_prange_h__
13#define __cxz_prange_h__
26 template <
class IndexT>
78 decltype(
auto)
operator*()
const;
94 decltype(
auto)
meta()
const;
106 decltype(
auto)
deepMax()
const;
112 template <
class Xpr,
class F>
113 decltype(
auto)
ifor(
const Xpr&
xpr,
F&&
f)
const;
145 template <
class I,
class I1>
151 template <
class RangeT>
170 virtual void make()
override final;
183 template <
class RangeT>
const Sptr< IndexT > & orig() const
PIndex & operator-=(Int n)
RangePtr prange(const PIndex< IndexT > &last) const
UPos stepSize(const IndexId< I > &id) const
decltype(auto) xpr(const Sptr< PIndex< IndexT > > &_this) const
IndexInterface< PIndex< IndexT >, typename IndexT::MetaType > IB
PIndex operator-(Int n) const
String stringMeta() const
decltype(auto) ifor(const Xpr &xpr, F &&f) const
PIndex & operator=(SizeT lexpos)
PIndex & reformat(const Vector< SizeT > &f, const Vector< SizeT > &s)
PIndex & operator+=(Int n)
decltype(auto) deepMax() const
decltype(auto) meta() const
PIndex operator+(Int n) const
IndexT::MetaType MetaType
PRange< typename IndexT::RangeType > RangeType
bool formatIsTrivial() const
PIndex & at(const MetaType &metaPos)
decltype(auto) deepFormat() const
PIndex(const RangePtr &range, SizeT pos=0)
Sptr< RangeType > range() const
const Vector< SizeT > & parts() const
PIndex< typename RangeT::IndexType > IndexType
virtual SizeT size() const override final
virtual const TypeInfo & type() const override final
virtual RangePtr extend(const RangePtr &r) const override final
RangeT::MetaType MetaType
virtual SizeT dim() const override final
virtual const TypeInfo & metaType() const override final
virtual String stringMeta(SizeT pos) const override final
Sptr< RangeT > orig() const
Sptr< RangeBase > RangePtr
std::vector< T, Allocator< T > > Vector
Sptr< Range > rangeCast(const RangePtr r)
RangePtr prange(const Sptr< RangeT > &range, const Vector< SizeT > &parts)
std::shared_ptr< T > Sptr