Boost logo

Boost Users :

Subject: Re: [Boost-users] [program_options] Clearing variables_map
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2010-04-10 02:16:49


Jason Reich wrote:

>
> "Vladimir Prus" <vladimir_at_[hidden]> wrote in message
> news:hpmi0m$ei2$1_at_dough.gmane.org...
>> Jason Reich wrote:
> <snip>
>>> Is there some reason why the variables_map can't be cleared and reused?
>>
>> Why do you think that calling clear() and using the same variables_map
>> again
>> will cut down on memory deallocation/reallocation? It does not seem
>> obvious
>> to me that it will.
>>
>> - Volodya
>
> Hi Volodya,
> I know there will be memory allocation behind the scenes, but I think it
> would simplify the option processing if each processor could reuse an
> object, rather than having to delete and reallocate one each time a command
> arrives. Like a regular std::map, the variable_map it can be cleared, but
> it can't be reused.

I do not think you will get any benefit, actually, except for saving the
time necessary to construct variables_map instance itself -- which is
very small. Unlike std::vector, clearing std::map is not required to
keep any storage around.

> Also, many of the classes within program_option use private members and
> methods that limit the ability for the classes to be extended. Is there any
> reason why they weren't made protected to better allow extension?

Presumably, because those methods are not intended to be called by derived
classes? Do you have specific examples?

- Volodya


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net