12#ifndef __cxz_dindex_cc_h__
13#define __cxz_dindex_cc_h__
19 template <
class Index,
typename Meta>
25 template <
class Xpr,
class F>
28 typedef typename std::remove_reference<
decltype(Xpr()())>::type
R;
29 if constexpr(std::is_same<F,NoF>::value) {
30 if constexpr(std::is_same<R,None>::value
or std::is_same<R,void>::value){
52 auto ptr = std::dynamic_pointer_cast<XIndex<I,typename I::MetaType>>(
i.xptr() );
#define CXZ_ASSERT(statement, errmsg)
decltype(auto) ifor(const Xpr &xpr, F &&f) const
Dynamic index declaration.
constexpr decltype(auto) bufxpr(IXprF &&ixprf)
I indexAs(const DIndex &i)
decltype(auto) xpr(const Sptr< I > &i)
Sptr< Range > rangeCast(const RangePtr r)
decltype(auto) iptrMul(const Sptr< I1 > &a, const Sptr< I2 > &b)
constexpr decltype(auto) assignxpr(const Tar &tar, const Src &src)
std::shared_ptr< T > Sptr