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

@ -29,8 +29,7 @@ namespace sprout {
)
{
return sprout::remake<Result>(
result,
sprout::size(result),
result, sprout::size(result),
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
? op(first[Indexes - offset])
: *sprout::next(sprout::internal_begin(result), Indexes)
@ -114,9 +113,9 @@ namespace sprout {
>::type
transform(InputIterator first, InputIterator last, Result const& result, UnaryOperation op) {
return sprout::remake<Result>(
result,
sprout::size(result),
sprout::make_transform_iterator(first, op), sprout::make_transform_iterator(last, op)
result, sprout::size(result),
sprout::make_transform_iterator(first, op),
sprout::make_transform_iterator(last, op)
);
}
} // namespace detail
@ -148,8 +147,7 @@ namespace sprout {
)
{
return sprout::remake<Result>(
result,
sprout::size(result),
result, sprout::size(result),
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
? op(first1[Indexes - offset], first2[Indexes - offset])
: *sprout::next(sprout::internal_begin(result), Indexes)
@ -232,8 +230,7 @@ namespace sprout {
>::type
transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, Result const& result, BinaryOperation op) {
return sprout::remake<Result>(
result,
sprout::size(result),
result, sprout::size(result),
sprout::make_transform_iterator(first1, first2, op),
sprout::make_transform_iterator(last1, first2, op)
);