12#ifndef __cxz_urange_h__
13#define __cxz_urange_h__
29 template <
typename MetaT>
118 template <
class Xpr,
class F>
119 decltype(
auto)
ifor(
const Xpr&
xpr,
F&&
f)
const;
129 const MetaT* mMetaPtr;
132 template <
typename MetaT>
139 template <
typename MetaT,
class I1>
146 template <
typename MetaT>
157 virtual void make()
override final;
168 template <
typename MetaT>
213 SERIALIZATION_FUNCTIONS_NOPUB;
231 template <
typename MetaT>
238 template <
typename MetaT>
241 static constexpr bool value =
true;
RangePtr prange(const UIndex< MetaType > &last) const
UIndex & reformat(const Vector< SizeT > &f, const Vector< SizeT > &s)
UIndex & operator=(SizeT lexpos)
UIndex operator+(Int n) const
decltype(auto) xpr(const Sptr< UIndex< MetaType > > &_this) const
decltype(auto) ifor(const Xpr &xpr, F &&f) const
UIndex & at(const MetaT &metaPos)
UIndex & operator+=(Int n)
decltype(auto) stepSize(const IndexId< I > &id) const
URange< MetaT > RangeType
INDEX_RANDOM_ACCESS_ITERATOR_DEFS(MetaType)
bool formatIsTrivial() const
Sptr< RangeType > range() const
String stringMeta() const
const MetaT & operator*() const
UIndex operator-(Int n) const
UIndex & operator-=(Int n)
UIndex(const RangePtr &range, SizeT pos=0)
IndexInterface< UIndex< MetaT >, MetaT > IB
const MetaT & meta() const
const MetaType * get() const
UIndex< MetaT > IndexType
virtual SizeT dim() const override final
virtual const TypeInfo & type() const override final
virtual String stringMeta(SizeT pos) const override final
virtual RangePtr extend(const RangePtr &r) const override final
SizeT getMeta(const MetaType &metaPos) const
virtual const TypeInfo & metaType() const override final
virtual SizeT size() const override final
RangePtr urange(const Vector< MetaT > &space)
Sptr< RangeBase > RangePtr
std::vector< T, Allocator< T > > Vector
Sptr< Range > rangeCast(const RangePtr r)
std::shared_ptr< T > Sptr
void swap(UIndex< MetaT > &a, UIndex< MetaT > &b)