fix reverse_iterator

support STL container: some algorithms
This commit is contained in:
bolero-MURAKAMI 2013-01-20 08:53:20 +09:00
parent a9cd556f8e
commit 9a593cbb81
30 changed files with 634 additions and 78 deletions

View file

@ -27,8 +27,7 @@ namespace sprout {
)
{
return sprout::remake<Result>(
result,
sprout::size(result),
result, sprout::size(result),
(Indexes < offset && sprout::math::greater_equal(Indexes + size, offset) && sprout::math::greater_equal(Indexes + input_size, offset)
? last[Indexes - offset]
: *sprout::next(sprout::internal_begin(result), Indexes)
@ -101,19 +100,6 @@ namespace sprout {
typedef typename std::iterator_traits<BidirectionalIterator>::iterator_category* category;
return sprout::fixed::detail::copy_backward(first, last, result, category());
}
template<typename BidirectionalIterator, typename Result>
inline SPROUT_CONSTEXPR typename std::enable_if<
!sprout::is_fixed_container<Result>::value,
typename sprout::fixed::result_of::algorithm<Result>::type
>::type
copy_backward(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
return sprout::remake<Result>(
result,
sprout::size(result),
first, last
);
}
} // namespace detail
//
// copy_backward