|
Boost : |
Subject: Re: [boost] [utility] auto_buffer v2
From: Amit (contact.lipik_at_[hidden])
Date: 2009-10-07 08:28:46
Thorsten Ottosen <thorsten.ottosen <at> dezide.com> writes:
>
> Dear All,
>
> Hereby an updated class. Thanks to all who contributed with comments to
> the first try.
>
Hi,
I just downloaded the latest version from http://www.cs.aau.dk/~nesotto/boost/
A quick visual inspection appears to indicate that the sign of the
inequality in uninitialized_grow() is wrong - i.e. it should be:
pointer uninitialized_grow( size_type n ) // strong
{
if( size_ + n > members_.capacity_ )
reserve( size_ + n );
Also, when I actually use it, I keep having to write:
auto_buffer<...> ab;
ab.uninitialized_grow(N);
because the size constructor only appears to reserve, and not resize -
perhaps it can take a boolean, with default set to reserve and resize?
Similar problem with resize etc - the natural interface always initializes,
which is almost never what you want from a buffer class - 99% of the time
you want a buffer to write into.
So maybe it might be worth considering changing the interface so the
default members all resize uninitialized, and have checked_resize() etc
for uncommon cases?
Thanks
Amit
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk