12#ifndef __cxz_vpos_type_h__
13#define __cxz_vpos_type_h__
81 const PosT* mC =
nullptr;
162 template <
class PosT>
165 static inline decltype(
auto) make(
const VPosBase* a);
168 template <
class PosT1,
class PosT2>
171 static inline decltype(
auto) make(
const VPosBase* a);
virtual Uptr< VPosBase > vtimes(const VPosBase *a) const =0
virtual Uptr< VPosBase > vplus(const VPosBase *a) const =0
DEFAULT_MEMBERS(VPosBase)
virtual ~VPosBase()=default
virtual Uptr< VPosBase > vexec(const VPosBase *a) const =0
virtual SizeT vsize() const =0
virtual SizeT vval() const =0
virtual const VPosBase * vget() const =0
virtual Uptr< VPosBase > copy() const =0
virtual const VPosBase * vnext() const =0
virtual const VPosBase * vget() const override final
virtual Uptr< VPosBase > vtimes(const VPosBase *a) const override final
virtual Uptr< VPosBase > vplus(const VPosBase *a) const override final
virtual SizeT vval() const override final
virtual Uptr< VPosBase > copy() const override final
virtual Uptr< VPosBase > vexec(const VPosBase *a) const override final
virtual SizeT vsize() const override final
virtual const VPosBase * vnext() const override final
std::unique_ptr< T > Uptr
Sptr< Range > rangeCast(const RangePtr r)