12#ifndef __cxz_xindex_h__
13#define __cxz_xindex_h__
128 template <
class Index,
typename Meta>
217 {
static constexpr bool value =
true; };
223 template <
class Index>
virtual XIndexPtr operator-(Int n) const =0
virtual String stringMeta() const =0
DEFAULT_MEMBERS(XIndexBase)
virtual UPos lmax() const =0
virtual XIndexBase & reformat(const Vector< SizeT > &f, const Vector< SizeT > &s)=0
virtual SizeT dim() const =0
virtual IndexId< 0 > id() const =0
virtual XIndexBase & operator--()=0
virtual Vector< SizeT > deepFormat() const =0
virtual RangePtr range() const =0
virtual SizeT lex() const =0
virtual Vector< SizeT > deepMax() const =0
virtual XIndexBase & operator++()=0
virtual XIndexBase & operator+=(Int n)=0
virtual bool formatIsTrivial() const =0
virtual XIndexPtr operator+(Int n) const =0
virtual DType operator*() const =0
virtual XIndexBase & operator-=(Int n)=0
virtual DXpr< None > ifor(const DXpr< None > &xpr, NoF &&f) const =0
virtual RangePtr prange(const XIndexPtr &last) const =0
virtual XIndexBase & operator=(SizeT lexpos)=0
virtual XIndexPtr copy() const =0
virtual SizeT operator-(const XIndexBase &i) const =0
virtual DType meta() const =0
virtual XIndexBase & at(const DType &meta)=0
virtual SizeT pos() const =0
virtual ~XIndexBase()=default
virtual UPos stepSize(const IndexId< 0 > &id) const =0
virtual UPos pmax() const =0
virtual UPos pmax() const override final
virtual UPos stepSize(const IndexId< 0 > &id) const override final
virtual UPos lmax() const override final
virtual DType meta() const override final
virtual SizeT lex() const override final
virtual String stringMeta() const override final
virtual Vector< SizeT > deepMax() const override final
XIndex & operator=(const XIndex &i)
virtual DXpr< None > ifor(const DXpr< None > &xpr, NoF &&f) const override final
virtual RangePtr prange(const XIndexPtr &last) const override final
virtual SizeT pos() const override final
virtual XIndex & reformat(const Vector< SizeT > &f, const Vector< SizeT > &s) override final
virtual SizeT dim() const override final
virtual XIndexPtr copy() const override final
virtual XIndexBase & at(const DType &meta) override final
virtual RangePtr range() const override final
virtual bool formatIsTrivial() const override final
virtual Vector< SizeT > deepFormat() const override final
XIndex & operator=(XIndex &&i)
Sptr< RangeBase > RangePtr
Sptr< XIndexBase > XIndexPtr
std::vector< T, Allocator< T > > Vector
decltype(auto) xpr(const Sptr< I > &i)
Sptr< Range > rangeCast(const RangePtr r)
XIndexPtr xindexPtr(const Sptr< Index > &i)
XIndexPtr xindexPtr< XIndexBase >(const Sptr< XIndexBase > &i)
Sptr< IndexInterface< I, MetaType > > IndexPtr
std::shared_ptr< T > Sptr