#ifndef __cxz_xindex_cc_h__ #define __cxz_xindex_cc_h__ #include "xindex.h" namespace CNORXZ { /************** * XIndex * **************/ template XIndex::XIndex(const IndexPtr& i) : mI(i) {} template XIndex& XIndex::operator=(size_t pos) { *mI = pos; return *this; } template XIndex& XIndex::operator++() { ++(*mI); return *this; } template XIndex& XIndex::operator--() { --(*mI); return *this; } template int XIndex::pp(std::intptr_t idxPtrNum) { return mI->pp(idxPtrNum); } template int XIndex::mm(std::intptr_t idxPtrNum) { return mI->mm(idxPtrNum); } template size_t XIndex::dim() const { return mI->dim(); } template size_t XIndex::getStepSize(size_t n) const { return mI->getStepSize(n); } template std::string XIndex::stringMeta() const { return mI->stringMeta(); } template DType XIndex::meta() const { return DType(mI->meta()); } template XIndexBase& XIndex::at(const DType& meta) { // check!!! mI->at(std::any_cast(meta.get())); return *this; } template DynamicExpression XIndex::ifor(size_t step, DynamicExpression ex) const { return mI->ifor(step, ex); } template DynamicExpression XIndex::iforh(size_t step, DynamicExpression ex) const { return mI->iforh(step, ex); } } #endif