[RFC] Money_get::do_get appends?!?

Nathan Myers ncm-nospam@cantrip.org
Sun Feb 3 15:50:00 GMT 2002


On Sun, Feb 03, 2002 at 11:54:12PM +0100, Paolo Carlini wrote:
> Nathan Myers wrote:
> 
> >Almost.  If it fails, it must leave the string unchanged.
>
> You mean: I can call erase at the beginning and then, if it fails during 
> the parsing, I must remember to call erase once more before bailing out???

Sorry, worse than that.  If the user passes in "Golgafrincham" the user 
has to get back either "123" or "Golgafrincham".  You can avoid an
allocation by parsing characters into an array on the stack and
expanding to secondary storage only if it's exceeded, and then copying 
into the string storage.  If it helps any you can make it (or a separate 
function, for the purpose) a friend of basic_string<>::_Rep.  Or you
can use basic_string<>::swap.

Nathan Myers
ncm at cantrip dot org



More information about the Libstdc++ mailing list