Boost logo

Boost Users :

From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2006-08-09 12:44:46


Just found out:

if default value is removed from the line:

    options_description config("Configuration");
    config.add_options()
                ("worker-threads,w", po::value<int>(), , "Each worker thread starts parsing of one
file.\ndefault: 20")
;

No assertions are produced.

There should be some problems with bounds, maybe...

Thanks,
Ovanes

On Wed, August 9, 2006 18:35, Ovanes Markarian wrote:
> Hi!
>
> I use MS VC8.0 (2005) Express Edition.
>
> This code sample causes the following assertion:
>
> int main(int argc, char* argv[])
> {
> options_description generic("Generic options");
> generic.add_options()
> ("version,v", "print version string")
> ("help,h", "produce help message")
> ;
>
> // Declare a group of options that will be
> // allowed both on command line and in
> // config file
> options_description config("Configuration");
> config.add_options()
> ("worker-threads,w", po::value<int>()->default_value(20), "Each worker thread starts parsing of
> one file.\ndefault: 20")
> ;
>
> options_description cmdline_opt, cfgf_opt;
> cmdline_opt.add(generic).add(config);
> cfgf_opt.add(config);
>
> variables_map vm;
> store(command_line_parser(argc, argv).options(cmdline_opt).run(), vm);
>
> ifstream ifs("scanning_options.cfg");
> store(parse_config_file(ifs, cfgf_opt), vm);
> notify(vm);
>
> if(vm.count("help"))
> cout << config << endl;
>
> //... some other code
>
> return 0;
> }
>
> In this line:
> cout << config << endl;


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