From: Jim Meyering Date: Tue, 6 Jan 2015 23:46:38 +0000 (-0800) Subject: folly/wangle/futures/Future-inl.h: avoid -Wsign-compare errors X-Git-Tag: v0.22.0~17 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7f4d487a0bfb59dca5c110cd9a06421a4fb85549;p=folly.git folly/wangle/futures/Future-inl.h: avoid -Wsign-compare errors Summary: * folly/wangle/futures/Future-inl.h (whenAll): Do not compare signed (std::distance) with unsigned(size_t): add an assertion to eliminate the possibility of negative, then assign to a new size_t "n". Test Plan: Run this and note there are fewer errors than before: fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo Reviewed By: jsedgwick@fb.com Subscribers: trunkagent, fugalh, folly-diffs@ FB internal diff: D1770668 Tasks: 5941250 Signature: t1:1770668:1420736965:fc722657a2ec523052fd96c33d65d5ca24aae61c --- diff --git a/folly/wangle/futures/Future-inl.h b/folly/wangle/futures/Future-inl.h index 66cadbcf..61c386ad 100644 --- a/folly/wangle/futures/Future-inl.h +++ b/folly/wangle/futures/Future-inl.h @@ -546,10 +546,10 @@ whenAll(InputIterator first, InputIterator last) typedef typename std::iterator_traits::value_type::value_type T; - auto n = std::distance(first, last); - if (n == 0) { + if (first >= last) { return makeFuture(std::vector>()); } + size_t n = std::distance(first, last); auto ctx = new detail::WhenAllContext();