[program_options] Why is allow_unregistered not implemented for config file?

I want to use the program_options library for my app's, well, program options. There is one set of options, which will usually only be one or two lines, that will have an unknown name; this is only handled by the (boost::program_options::) basic_command_line_parser template, with, apparently, no equivalent functionality for config files. This seems to me to be an oversight. I would have thought there would at least be an option to ignore unknown parameters if they aren't supported like for the command line. For my needs, it looks like I might need to modify the Boost sources to disable the exception on unknown parameters, or force the user to create a special config file for, most likely, a single parameter. Or I can change the syntax to something much less natural. What I'm hoping for is either someone to inform me that I'm wrong, and there is a way to handle config files more elegantly than what I'm seeing, or a suggestion as to how best to implement what I need. Thanks for any help you can offer. -- Marty Fried - email: public.forums (at) gmail.com Left coast, USA

Marty Fried wrote:
I want to use the program_options library for my app's, well, program options. There is one set of options, which will usually only be one or two lines, that will have an unknown name; this is only handled by the (boost::program_options::) basic_command_line_parser template, with, apparently, no equivalent functionality for config files.
This seems to me to be an oversight. I would have thought there would at least be an option to ignore unknown parameters if they aren't supported like for the command line.
For my needs, it looks like I might need to modify the Boost sources to disable the exception on unknown parameters, or force the user to create a special config file for, most likely, a single parameter. Or I can change the syntax to something much less natural.
What I'm hoping for is either someone to inform me that I'm wrong, and there is a way to handle config files more elegantly than what I'm seeing, or a suggestion as to how best to implement what I need.
I think SVN HEAD has this definition: basic_parsed_options<charT> parse_config_file(std::basic_istream<charT>&, const options_description&, bool allow_unregistered = false); which should work for you. - Volodya

"Vladimir Prus"
Marty Fried wrote:
I want to use the program_options library for my app's, well, program options. There is one set of options, which will usually only be one or two lines, that will have an unknown name; this is only handled by the (boost::program_options::) basic_command_line_parser template, with, apparently, no equivalent functionality for config files.
. . . [cut]
I think SVN HEAD has this definition:
basic_parsed_options<charT> parse_config_file(std::basic_istream<charT>&, const options_description&, bool allow_unregistered = false);
which should work for you.
Volodya, Thanks a lot for the reply. This will make it a lot easier for me. I've never used subversion, but hopefully, I can muddle through figuring out how to use it. I did find a copy of parsers.hpp that has the new definition, and I was happy to see that that was the only change, as I don't want to use the unreleased library, nor do I want to wait. :-) So, I will try to patch in the changes for now, and convert to using the library when it's released. If I can't find the sources, I may impose on you once more for help, but I'll try not to do that. -- Marty Fried - Left coast, USA
participants (2)
-
Marty Fried
-
Vladimir Prus