adapted to the new range interface

[SVN r38122]
This commit is contained in:
Pavol Droba
2007-07-01 13:12:57 +00:00
parent 777f30780e
commit 869660ed14
2 changed files with 64 additions and 37 deletions

View File

@ -61,6 +61,49 @@ namespace boost {
const std::locale& m_Loc;
};
// algorithm implementation -------------------------------------------------------------------------
// Transform a range
template<typename OutputIteratorT, typename RangeT, typename FunctorT>
OutputIteratorT transform_range_copy(
OutputIteratorT Output,
const RangeT& Input,
FunctorT Functor)
{
return std::transform(
begin(Input),
end(Input),
Output,
Functor);
}
// Transform a range (in-place)
template<typename RangeT, typename FunctorT>
void transform_range(
const RangeT& Input,
FunctorT Functor)
{
std::transform(
begin(Input),
end(Input),
begin(Input),
Functor);
}
template<typename SequenceT, typename RangeT, typename FunctorT>
inline SequenceT transform_range_copy(
const RangeT& Input,
FunctorT Functor)
{
return SequenceT(
make_transform_iterator(
begin(Input),
Functor),
make_transform_iterator(
end(Input),
Functor));
}
} // namespace detail
} // namespace algorithm
} // namespace boost