From: Hans Fugal Date: Wed, 29 Apr 2015 16:46:26 +0000 (-0700) Subject: Move this `reduce` to `helpers.h` X-Git-Tag: v0.37.0~4 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=dd00fd8134ac7bdf72117a23e143094474e142cd;p=folly.git Move this `reduce` to `helpers.h` Summary: just a lowly non-erroring semantic merge conflict Test Plan: builds Reviewed By: jsedgwick@fb.com Subscribers: trunkagent, exa, folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D2029593 Signature: t1:2029593:1430319785:2cd96927b9080fe18b168ab95ad201afc4f00857 --- diff --git a/folly/futures/Future.h b/folly/futures/Future.h index 0989873d..3111fbf9 100644 --- a/folly/futures/Future.h +++ b/folly/futures/Future.h @@ -404,17 +404,6 @@ class Future { }; -// Sugar for the most common case -template -auto reduce(Collection&& c, T&& initial, F&& func) - -> decltype(reduce(c.begin(), c.end(), initial, func)) { - return reduce( - c.begin(), - c.end(), - std::forward(initial), - std::forward(func)); -} - } // folly #include diff --git a/folly/futures/helpers.h b/folly/futures/helpers.h index 138cfd47..7fd79508 100644 --- a/folly/futures/helpers.h +++ b/folly/futures/helpers.h @@ -153,7 +153,7 @@ Future::value_type::value_type>>> collectAll(InputIterator first, InputIterator last); -// Sugar for the most common case +/// Sugar for the most common case template auto collectAll(Collection&& c) -> decltype(collectAll(c.begin(), c.end())) { return collectAll(c.begin(), c.end()); @@ -177,7 +177,7 @@ Future::result_type> collect(InputIterator first, InputIterator last); -// Sugar for the most common case +/// Sugar for the most common case template auto collect(Collection&& c) -> decltype(collect(c.begin(), c.end())) { return collect(c.begin(), c.end()); @@ -195,7 +195,7 @@ Future::value_type::value_type>>> collectAny(InputIterator first, InputIterator last); -// Sugar for the most common case +/// Sugar for the most common case template auto collectAny(Collection&& c) -> decltype(collectAny(c.begin(), c.end())) { return collectAny(c.begin(), c.end()); @@ -213,7 +213,7 @@ Future::value_type::value_type>>>> collectN(InputIterator first, InputIterator last, size_t n); -// Sugar for the most common case +/// Sugar for the most common case template auto collectN(Collection&& c, size_t n) -> decltype(collectN(c.begin(), c.end(), n)) { @@ -246,4 +246,15 @@ template ::value, Future>::type reduce(It first, It last, T initial, F func); +/// Sugar for the most common case +template +auto reduce(Collection&& c, T&& initial, F&& func) + -> decltype(reduce(c.begin(), c.end(), initial, func)) { + return reduce( + c.begin(), + c.end(), + std::forward(initial), + std::forward(func)); +} + } // namespace folly