
2 Mar
2009
2 Mar
'09
3:32 p.m.
AMDG vicente.botet wrote:
why do we need two overloading for the non mutating algorithms? I understand the issue for mutatong algorithms, but the parameter is not always const for non mutating ones?
template<class ForwardRange> typename range_iterator<ForwardRange>::type adjacent_find(ForwardRange& rng);
template<class ForwardRange> typename range_iterator<const ForwardRange>::type adjacent_find(const ForwardRange& rng);
For the same reason that we have const and non-const overloads of begin(), end(), operator[], etc. We may need mutating access through the result. In Christ, Steven Watanabe