From: Nathan Bronson Date: Wed, 1 Mar 2017 17:53:28 +0000 (-0800) Subject: rename Range template arg for increased readability X-Git-Tag: v2017.03.06.00~10 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff_plain;h=f330bc23b0ae9e1aee567183e78c00dafde2c0d7 rename Range template arg for increased readability Summary: Parameterizing Range by the template arg T is potentially confusing because it violates the typical container pattern of T being the value type. This diff uses Range consistently in Range.h when the template arg refers to a fully general iterator. Reviewed By: yfeldblum Differential Revision: D4635270 fbshipit-source-id: f70bb2e3e23ab9875fba3dbf7b11492613a037b8 --- diff --git a/folly/Range.h b/folly/Range.h index d2077bdb..9c9b68b2 100644 --- a/folly/Range.h +++ b/folly/Range.h @@ -61,7 +61,7 @@ namespace folly { -template class Range; +template class Range; /** * Finds the first occurrence of needle in haystack. The algorithm is on @@ -69,9 +69,10 @@ template class Range; * as Boyer-Moore. On the upside, it does not do any upfront * preprocessing and does not allocate memory. */ -template ::value_type>> -inline size_t qfind(const Range & haystack, - const Range & needle, +template ::value_type>> +inline size_t qfind(const Range & haystack, + const Range & needle, Comp eq = Comp()); /** @@ -79,27 +80,27 @@ inline size_t qfind(const Range & haystack, * offset reported to the beginning of haystack, or string::npos if * needle wasn't found. */ -template -size_t qfind(const Range & haystack, - const typename Range::value_type& needle); +template +size_t qfind(const Range & haystack, + const typename Range::value_type& needle); /** * Finds the last occurrence of needle in haystack. The result is the * offset reported to the beginning of haystack, or string::npos if * needle wasn't found. */ -template -size_t rfind(const Range & haystack, - const typename Range::value_type& needle); +template +size_t rfind(const Range & haystack, + const typename Range::value_type& needle); /** * Finds the first occurrence of any element of needle in * haystack. The algorithm is O(haystack.size() * needle.size()). */ -template -inline size_t qfind_first_of(const Range & haystack, - const Range & needle); +template +inline size_t qfind_first_of(const Range & haystack, + const Range & needle); /** * Small internal helper - returns the value just before an iterator. @@ -918,8 +919,8 @@ private: template const typename Range::size_type Range::npos = std::string::npos; -template -void swap(Range& lhs, Range& rhs) { +template +void swap(Range& lhs, Range& rhs) { lhs.swap(rhs); } @@ -974,13 +975,13 @@ inline std::ostream& operator<<(std::ostream& os, * Templated comparison operators */ -template -inline bool operator==(const Range& lhs, const Range& rhs) { +template +inline bool operator==(const Range& lhs, const Range& rhs) { return lhs.size() == rhs.size() && lhs.compare(rhs) == 0; } -template -inline bool operator<(const Range& lhs, const Range& rhs) { +template +inline bool operator<(const Range& lhs, const Range& rhs) { return lhs.compare(rhs) < 0; } @@ -1057,9 +1058,9 @@ operator>=(const T& lhs, const U& rhs) { /** * Finds substrings faster than brute force by borrowing from Boyer-Moore */ -template -size_t qfind(const Range& haystack, - const Range& needle, +template +size_t qfind(const Range& haystack, + const Range& needle, Comp eq) { // Don't use std::search, use a Boyer-Moore-like trick by comparing // the last characters first @@ -1125,9 +1126,9 @@ inline size_t qfind_first_byte_of(const StringPiece haystack, } // namespace detail -template -size_t qfind_first_of(const Range & haystack, - const Range & needles, +template +size_t qfind_first_of(const Range & haystack, + const Range & needles, Comp eq) { auto ret = std::find_first_of(haystack.begin(), haystack.end(), needles.begin(), needles.end(), @@ -1156,16 +1157,16 @@ struct AsciiCaseInsensitive { } }; -template -size_t qfind(const Range& haystack, - const typename Range::value_type& needle) { +template +size_t qfind(const Range& haystack, + const typename Range::value_type& needle) { auto pos = std::find(haystack.begin(), haystack.end(), needle); return pos == haystack.end() ? std::string::npos : pos - haystack.data(); } -template -size_t rfind(const Range& haystack, - const typename Range::value_type& needle) { +template +size_t rfind(const Range& haystack, + const typename Range::value_type& needle) { for (auto i = haystack.size(); i-- > 0; ) { if (haystack[i] == needle) { return i; @@ -1222,9 +1223,9 @@ inline size_t rfind(const Range& haystack, return pos == nullptr ? std::string::npos : pos - haystack.data(); } -template -size_t qfind_first_of(const Range& haystack, - const Range& needles) { +template +size_t qfind_first_of(const Range& haystack, + const Range& needles) { return qfind_first_of(haystack, needles, AsciiCaseSensitive()); }