tcanens added inline comments.
================ Comment at: include/__string:543 +_LIBCPP_CONSTEXPR_AFTER_CXX11 +_RandomAccessIterator +__search_substring(_RandomAccessIterator __first1, _RandomAccessIterator __last1, ---------------- A character traits class need only accept pointers, so the name `_RandomAccessIterator` is misleading when you are passing them directly to `_Traits::find`/`_Traits::compare`. Why not just `const _CharT*`? Then you can strip out all the `iterator_traits` circumlocution as well. ================ Comment at: include/__string:548 + using __iterator_traits = iterator_traits<_RandomAccessIterator>; + typedef typename __iterator_traits::difference_type __difference_type; + ---------------- For example, since `_RandomAccessIterator` must be a pointer type, this can't possibly be anything other than `ptrdiff_t`. ================ Comment at: include/__string:568 + __first1 = _Traits::find(__first1, __len1 - __len2 + 1, __f2); + if (__first1 == _RandomAccessIterator(0)) + return __last1; ---------------- The function-style cast is redundant. https://reviews.llvm.org/D27068 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits