15#ifndef __cxz_range_base_h__
16#define __cxz_range_base_h__
24#include <cereal/access.hpp>
184 template <
class Range>
192 decltype(
auto)
begin()
const;
195 decltype(
auto)
end()
const;
212 template <
class Range>
226 template <
class Range>
virtual MArray< RangePtr > sub() const
bool operator!=(const RangeBase &in) const
virtual ~RangeBase()=default
virtual SizeT size() const =0
virtual String stringMeta(SizeT pos) const =0
virtual RangePtr extend(const RangePtr &r) const =0
virtual SizeT dim() const =0
virtual const TypeInfo & metaType() const =0
bool operator==(const RangeBase &in) const
virtual const TypeInfo & type() const =0
virtual DIndex index(SizeT pos=0) const =0
virtual Vector< Uuid > key() const =0
RangePtr fromCreated(const TypeInfo &info, const Vector< Uuid > &rids) const
void addToCreated(const TypeInfo &info, const Vector< Uuid > &rids, const RangePtr &r)
RangeFactoryBase()=default
static RangePtr getRegistered(const TypeInfo &info, const RangePtr &r)
virtual ~RangeFactoryBase()=default
virtual DIndex index(SizeT pos) const override final
decltype(auto) begin() const
decltype(auto) end() const
Memory template implementations main header.
Sptr< RangeBase > RangePtr
RangePtr getSub(const RangePtr &r, SizeT num)
std::vector< T, Allocator< T > > Vector
Sptr< Range > rangeCast(const RangePtr r)
constexpr decltype(auto) operator*(const COpInterface< Op1 > &op1, const COpInterface< Op2 > &op2)
std::shared_ptr< T > Sptr
static Sptr< Range > func(const RangePtr &r)