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
This commit is contained in:
parent
e0d0c1939b
commit
4e571cd5ac
|
@ -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
|
||||
|
|
|
@ -353,18 +353,24 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
|
|||
operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
|
||||
{ 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>
|
||||
|
|
Loading…
Reference in New Issue