add tuples::apply

This commit is contained in:
bolero-MURAKAMI 2014-12-14 12:59:51 +09:00
parent a1f6d6ffc3
commit 5ccbc4e903
16 changed files with 280 additions and 52 deletions

View file

@ -76,6 +76,33 @@ namespace sprout {
SPROUT_FORWARD(ForwardRange1, range1)
);
}
//
template<typename ForwardRange, typename Searcher>
inline SPROUT_CONSTEXPR typename sprout::range::range_return<ForwardRange>::type
search(ForwardRange&& range, Searcher const& searcher) {
return sprout::range::range_return<ForwardRange>::pack(
sprout::search(
sprout::begin(SPROUT_FORWARD(ForwardRange, range)),
sprout::end(SPROUT_FORWARD(ForwardRange, range)),
searcher
),
SPROUT_FORWARD(ForwardRange, range)
);
}
template<sprout::range::range_return_value RetV, typename ForwardRange, typename Searcher>
inline SPROUT_CONSTEXPR typename sprout::range::range_return<ForwardRange, RetV>::type
search(ForwardRange&& range, Searcher const& searcher) {
return sprout::range::range_return<ForwardRange, RetV>::pack(
sprout::search(
sprout::begin(SPROUT_FORWARD(ForwardRange, range)),
sprout::end(SPROUT_FORWARD(ForwardRange, range)),
searcher
),
SPROUT_FORWARD(ForwardRange, range)
);
}
} // namespace range
} // namespace sprout