@@ -438,10 +438,10 @@ class BasicTaskflow {
438438 auto wait_for_all ();
439439
440440 template <typename I, typename C>
441- auto parallel_for (I, I, C&&, ssize_t = 1 );
441+ auto parallel_for (I, I, C&&, size_t = 1 );
442442
443443 template <typename T, typename C, std::enable_if_t <is_iterable_v<T>, void >* = nullptr >
444- auto parallel_for (T&, C&&, ssize_t = 1 );
444+ auto parallel_for (T&, C&&, size_t = 1 );
445445
446446 // template<typename I, class C>
447447 // auto parallel_range(const I, const I, C&&, ssize_t = 1);
@@ -847,28 +847,25 @@ auto BasicTaskflow<F>::emplace(C&&... cs) {
847847// Function: parallel_for
848848template <typename F>
849849template <typename I, class C >
850- auto BasicTaskflow<F>::parallel_for(I beg, I end, C&& c, ssize_t group) {
850+ auto BasicTaskflow<F>::parallel_for(I beg, I end, C&& c, size_t group) {
851851
852852 if (group <= 0 ) {
853853 group = 1 ;
854854 }
855855
856856 auto source = placeholder ();
857857 auto target = placeholder ();
858- auto len = std::distance (beg, end);
859858
860- for (; beg != end;) {
859+ for (; beg != end; ) {
861860 auto e = beg;
862- std::advance (e, group < len ? group : len);
863- len -= group;
864-
865- auto task = silent_emplace ([c, itr=beg, e]() mutable {
866- for (;itr!=e; itr++){
867- c (*itr);
861+ for (size_t i=0 ; i<group && e != end; ++e, ++i);
862+ auto task = silent_emplace ([c, beg, e] () mutable {
863+ for (auto itr = beg; itr != e; ++itr) {
864+ c (*itr);
868865 }
869866 });
870867 beg = e;
871-
868+
872869 source.precede (task);
873870 task.precede (target);
874871 }
@@ -879,7 +876,7 @@ auto BasicTaskflow<F>::parallel_for(I beg, I end, C&& c, ssize_t group) {
879876// Function: parallel_for
880877template <typename F>
881878template <typename T, typename C, std::enable_if_t <is_iterable_v<T>, void >*>
882- auto BasicTaskflow<F>::parallel_for(T& t, C&& c, ssize_t group) {
879+ auto BasicTaskflow<F>::parallel_for(T& t, C&& c, size_t group) {
883880 return parallel_for (t.begin (), t.end (), std::forward<C>(c), group);
884881}
885882
0 commit comments