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
This commit is contained in:
Hans Fugal
2015-04-29 15:57:37 -07:00
committed by Andrii Grynenko
parent f0901aec91
commit dd00fd8134
2 changed files with 15 additions and 15 deletions
-11
View File
@@ -404,17 +404,6 @@ class Future {
};
// Sugar for the most common case
template <class Collection, class T, class F>
auto reduce(Collection&& c, T&& initial, F&& func)
-> decltype(reduce(c.begin(), c.end(), initial, func)) {
return reduce(
c.begin(),
c.end(),
std::forward<T>(initial),
std::forward<F>(func));
}
} // folly
#include <folly/futures/Future-inl.h>
+15 -4
View File
@@ -153,7 +153,7 @@ Future<std::vector<Try<
typename std::iterator_traits<InputIterator>::value_type::value_type>>>
collectAll(InputIterator first, InputIterator last);
// Sugar for the most common case
/// Sugar for the most common case
template <class Collection>
auto collectAll(Collection&& c) -> decltype(collectAll(c.begin(), c.end())) {
return collectAll(c.begin(), c.end());
@@ -177,7 +177,7 @@ Future<typename detail::CollectContext<
>::result_type>
collect(InputIterator first, InputIterator last);
// Sugar for the most common case
/// Sugar for the most common case
template <class Collection>
auto collect(Collection&& c) -> decltype(collect(c.begin(), c.end())) {
return collect(c.begin(), c.end());
@@ -195,7 +195,7 @@ Future<std::pair<
Try<typename std::iterator_traits<InputIterator>::value_type::value_type>>>
collectAny(InputIterator first, InputIterator last);
// Sugar for the most common case
/// Sugar for the most common case
template <class Collection>
auto collectAny(Collection&& c) -> decltype(collectAny(c.begin(), c.end())) {
return collectAny(c.begin(), c.end());
@@ -213,7 +213,7 @@ Future<std::vector<std::pair<
Try<typename std::iterator_traits<InputIterator>::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 <class Collection>
auto collectN(Collection&& c, size_t n)
-> decltype(collectN(c.begin(), c.end(), n)) {
@@ -246,4 +246,15 @@ template <class It, class T, class F,
typename std::enable_if<isFutureResult<F, T, Arg>::value, Future<T>>::type
reduce(It first, It last, T initial, F func);
/// Sugar for the most common case
template <class Collection, class T, class F>
auto reduce(Collection&& c, T&& initial, F&& func)
-> decltype(reduce(c.begin(), c.end(), initial, func)) {
return reduce(
c.begin(),
c.end(),
std::forward<T>(initial),
std::forward<F>(func));
}
} // namespace folly