Re: std::vector fix & enhancements

2018-10-31 Thread François Dumont
Here is the updated patch. I forgot that pre-C+11 we already had the default copy constructor and assignment operators. And with the trick on definition of _M_start the patch is much smaller.     * include/bits/stl_bvector.h     [_GLIBCXX_INLINE_VERSION](_Bvector_impl_data::_M_start): Define

Re: std::vector fix & enhancements

2018-10-30 Thread Jonathan Wakely
On 30/10/18 07:28 +0100, François Dumont wrote: Following Marc Glisse change to ignore _M_start offset I wanted to go a little step further and just remove it in _GLIBCXX_INLINE_VERSION mode. I also fix a regression we already fixed on mainstream std::vector regarding noexcept qualification

Re: std::vector fix & enhancements

2018-10-30 Thread François Dumont
Running tests in C++98 mode show that I had forgotten a 'return *this;' in _Bvector_impl_data::operator=. So here is the patch again. On 10/30/18 7:28 AM, François Dumont wrote: Following Marc Glisse change to ignore _M_start offset I wanted to go a little step further and just remove it in

std::vector fix & enhancements

2018-10-30 Thread François Dumont
Following Marc Glisse change to ignore _M_start offset I wanted to go a little step further and just remove it in _GLIBCXX_INLINE_VERSION mode. I also fix a regression we already fixed on mainstream std::vector regarding noexcept qualification of move constructor with allocator. And I