ForEachIndex.result

Undocumented in source.
  1. enum result;
    template ForEachIndex(size_t N, L...)
    static if(L.length > 0)
    enum result = Replace!(q{ alias IndexedBy.Indices[$N] L$N; alias L$N.Inner!(typeof(this),ThisNode,Value, ValueView,$N,Allocator) M$N; mixin M$N.IndexMixin!(M$N.IndexTuple) index$N; template index(size_t n) if(n == $N){ alias index$N index; } struct Index$N{ MultiIndexContainer _this; // grr opdispatch not handle this one auto opSlice(T...)(T ts){ return _this.index!($N).opSlice(ts); } // grr opdispatch not handle this one auto opIndex(T...)(T ts){ return _this.index!($N).opIndex(ts); } // grr opdispatch not handle this one auto opIndexAssign(T...)(T ts){ return _this.index!($N).opIndexAssign(ts); } // grr opdispatch not handle this one auto opBinaryRight(string op, T...)(T ts){ return _this.index!($N).opBinaryRight!(op)(ts); } // grr opdispatch not handle this one auto bounds(string bs = "[]", T)(T t1, T t2){ return _this.index!($N).bounds!(bs,T)(t1,t2); } // grr opdispatch not handle this one auto bounds(V, string bs = "[]", T)(T t1, T t2){ return _this.index!($N).cbounds!(V,bs,T)(t1,t2); } // grr opdispatch not handle this one auto cEqualRange(L, K)(K k) { return _this.index!($N).cEqualRange!(L, K).equalRange(k); } // grr opdispatch not handle this one auto cEqualRange(L, K)(K k) const { return _this.index!($N).cEqualRange!(L, K).equalRange(k); } auto opDispatch(string s, T...)(T args){ mixin("return _this.index!($N)."~s~"(args);"); } } @property Index$N get_index(size_t n)() if(n == $N){ return Index$N(this); } }, "$N", N) ~ ForEachIndex!(N + 1, L[1..$]).result;
  2. enum result;

Meta