diff options
author | Paolo Carlini <pcarlini@unitus.it> | 2003-09-30 19:03:52 +0200 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2003-09-30 17:03:52 +0000 |
commit | cbc6c296e6ca87c85ec7d1c18a3c38cc78b765d5 (patch) | |
tree | 2782e5149b5643b912e59e2760a7ede4eea8d3a3 | |
parent | 2ea247d37649742155a8b77327bc25b896709c59 (diff) | |
download | gcc-cbc6c296e6ca87c85ec7d1c18a3c38cc78b765d5.zip gcc-cbc6c296e6ca87c85ec7d1c18a3c38cc78b765d5.tar.gz gcc-cbc6c296e6ca87c85ec7d1c18a3c38cc78b765d5.tar.bz2 |
stl_algo.h (search_n): Tweak, to spare the first --__n.
2003-09-30 Paolo Carlini <pcarlini@unitus.it>
* include/bits/stl_algo.h (search_n): Tweak, to spare the
first --__n.
From-SVN: r71946
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_algo.h | 10 |
2 files changed, 9 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 410d65c..662541a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2003-09-30 Paolo Carlini <pcarlini@unitus.it> + * include/bits/stl_algo.h (search_n): Tweak, to spare the + first --__n. + +2003-09-30 Paolo Carlini <pcarlini@unitus.it> + * testsuite/22_locale/locale/cons/12352.cc: Explicitly qualify exception name. diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index c92aa3c..c2fb871 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -610,14 +610,13 @@ namespace std __first = std::find(__first, __last, __val); while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; - --__n; _ForwardIterator __i = __first; ++__i; - while (__i != __last && __n != 0 && *__i == __val) { + while (__i != __last && __n != 1 && *__i == __val) { ++__i; --__n; } - if (__n == 0) + if (__n == 1) return __first; else __first = std::find(__i, __last, __val); @@ -663,14 +662,13 @@ namespace std } while (__first != __last) { typename iterator_traits<_ForwardIterator>::difference_type __n = __count; - --__n; _ForwardIterator __i = __first; ++__i; - while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { + while (__i != __last && __n != 1 && __binary_pred(*__i, __val)) { ++__i; --__n; } - if (__n == 0) + if (__n == 1) return __first; else { while (__i != __last) { |