This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: First patch to simplify <algorithm>


caj <caj@cs.york.ac.uk> writes:

| +  template<typename _ForwardIterator>
| +    _ForwardIterator
| +    adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
| +    {
| +      // concept requirements
| +      __glibcxx_function_requires(_EqualityComparableConcept<
| +	    typename iterator_traits<_ForwardIterator>::value_type>)
| +      return adjacent_find(__first, __last,
| +             __default_eq_pred<typename iterator_traits<_ForwardIterator>::
| +			   value_type>());

With the suggestions I made, the above simply reads

         return std::adjacent_find(__first, __last, __gnu_cxx::equal());

No, typename-fu. You can leave the "concept checking"  part to the
"forwarded-to" more general algorithm.  And you should make the
resulting function inline.
(Note the explicit qualification, too.)

-- gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]