auto reHashExpr(NH) { auto temp = ReduceAllBuilder<I, S, F, O, P, NH>{ std::forward<F>(this->_func), std::move(this->_prev), this->_adjacent, this->_bunchSize}; temp.props(this->props()); temp.dumpProps(this->dumpProps()); return temp; }
auto reHashExpr(NH) { auto temp = ReduceBuilder<I, S, F, FO, O, P, NH>{ std::forward<F>(this->_func), std::forward<FO>(this->_initVal), std::move(this->_prev)}; temp.props(this->props()); temp.dumpProps(this->dumpProps()); return temp; }
auto colsSlct(NO = NO{}) { // NOTE: while calling with T cast arg. is req auto temp = MapBuilder<I, S, F, NO, P, H, A>{std::forward<F>(this->_func), std::move(this->_prev), std::move(this->_fl), std::forward<H>(this->_h)}; temp.prllProps(this->prllProps()); temp.dumpProps(this->dumpProps()); return temp; }
auto reHashExpr(NH) { auto temp = FilterBuilder<I, S, F, O, P, NH>{std::move(this->_func), std::move(this->_prev)}; temp.props(this->props()); temp.dumpProps(this->dumpProps()); return temp; }
auto reFilterExpr(NO) { // NOTE: while calling with T cast arg. is req auto temp = FilterBuilder<I, S, F, NO, P, H>{std::forward<F>(this->_func), std::move(this->_prev)}; temp.props(this->props()); temp.dumpProps(this->dumpProps()); return temp; }
auto reParExpr(NOP) { constexpr auto size = std::tuple_size<I>::value; using NP = typename meta::saneSlctImpl<size, NOP>::type; using HN = boost::hash<typename meta::SlctTupleRefType<I, NP>::type>; auto temp = MapBuilder<I, S, F, O, NP, HN>{std::forward<F>(this->_func), std::move(this->_prev)}; temp.props(this->props()); temp.dumpProps(this->dumpProps()); return temp; }
auto partitionBy(NH &&nh = NH{}) { using NP = meta::saneSlct<std::tuple_size<I>::value, i, is...>; auto temp = MapBuilder<I, S, F, O, NP, NH, A>{std::forward<F>(this->_func), std::move(this->_prev), std::move(this->_fl), std::forward<NH>(nh)}; this->_props.isPrll = true; temp.prllProps(this->prllProps()); temp.dumpProps(this->dumpProps()); return temp; }