diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-08-11 10:39:37 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-08-11 10:39:37 +0000 |
commit | 4e571cd5ac1c1257066fa52c4ad19534777a371a (patch) | |
tree | 828e8a33403942c4b4c0bc0d11dd5737513b7a71 | |
parent | e0d0c1939bb8267a7b1dac0aedaa8e8c22ef2cad (diff) | |
download | gcc-4e571cd5ac1c1257066fa52c4ad19534777a371a.zip gcc-4e571cd5ac1c1257066fa52c4ad19534777a371a.tar.gz gcc-4e571cd5ac1c1257066fa52c4ad19534777a371a.tar.bz2 |
stl_bvector.h (__fill_bvector(_Bit_iterator, _Bit_iterator, bool)): New.
2006-08-11 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_bvector.h (__fill_bvector(_Bit_iterator,
_Bit_iterator, bool)): New.
(fill(_Bit_iterator, _Bit_iterator, const bool&)): Use it.
From-SVN: r116081
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_bvector.h | 16 |
2 files changed, 17 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 866147f..6fde3f2 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2006-08-11 Paolo Carlini <pcarlini@suse.de> + + * include/bits/stl_bvector.h (__fill_bvector(_Bit_iterator, + _Bit_iterator, bool)): New. + (fill(_Bit_iterator, _Bit_iterator, const bool&)): Use it. + 2006-08-10 Paolo Carlini <pcarlini@suse.de> * include/tr1/random.tcc (gamma_distribution<>::operator()): Fixes diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 5d87bc5..a48e964 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -354,17 +354,23 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) { return __x + __n; } inline void + __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x) + { + for (; __first != __last; ++__first) + *__first = __x; + } + + inline void fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) { if (__first._M_p != __last._M_p) { - std::__fill<true>::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0); - std::__fill<true>::fill(__first, _Bit_iterator(__first._M_p + 1, 0), - __x); - std::__fill<true>::fill(_Bit_iterator(__last._M_p, 0), __last, __x); + std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0); + __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x); + __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x); } else - std::__fill<true>::fill(__first, __last, __x); + __fill_bvector(__first, __last, __x); } template<class _Alloc> |