[Program Options] Requiring command-line options

Heya! I just thinking about switching from simpleOpt to BoostPO for command line handling, mainly because of its support of configuration files. This may be a stupid question, but I haven't seen anything about making a command line parameter *required*. You'd think this is a pretty common thing, but I didn't see any mention of it in the tutorials or anything. I guess I could just make certain parameters default -1/NULL or something, and then test at the end if they're still equal to that, but that seems a bit ugly. Is there built in support (a flag in the "add_options" function or something) for making certain parameters required? Thanks a lot!

This seems to work for me:
("namespace", po::valuestd::string(&args.name_space)->required(),"namespace
to scrub")
throws an exception when appropriate:
ERROR - main: Caught an exception exiting main: missing required
option namespace
I remember having to hunt for it too.
Greetz,
Immanuel
On Thu, Jun 3, 2010 at 9:41 AM, Jeremy Abramson
Heya! I just thinking about switching from simpleOpt to BoostPO for command line handling, mainly because of its support of configuration files. This may be a stupid question, but I haven't seen anything about making a command line parameter *required*. You'd think this is a pretty common thing, but I didn't see any mention of it in the tutorials or anything. I guess I could just make certain parameters default -1/NULL or something, and then test at the end if they're still equal to that, but that seems a bit ugly. Is there built in support (a flag in the "add_options" function or something) for making certain parameters required?
Thanks a lot!
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

So this is not in the documentation? Could you add a ticket in track
to fix the documentation?
Best,
Dee
On Thu, Jun 3, 2010 at 9:09 PM, immanuel litzroth
This seems to work for me: ("namespace", po::valuestd::string(&args.name_space)->required(),"namespace to scrub") throws an exception when appropriate: ERROR - main: Caught an exception exiting main: missing required option namespace I remember having to hunt for it too. Greetz, Immanuel
On Thu, Jun 3, 2010 at 9:41 AM, Jeremy Abramson
wrote: Heya! I just thinking about switching from simpleOpt to BoostPO for command line handling, mainly because of its support of configuration files. This may be a stupid question, but I haven't seen anything about making a command line parameter *required*. You'd think this is a pretty common thing, but I didn't see any mention of it in the tutorials or anything. I guess I could just make certain parameters default -1/NULL or something, and then test at the end if they're still equal to that, but that seems a bit ugly. Is there built in support (a flag in the "add_options" function or something) for making certain parameters required?
Thanks a lot!
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

So this is not in the documentation? Could you add a ticket in track to fix the documentation?
You can do it just as well ;-)
Not at that moment ;) But fair enough: https://svn.boost.org/trac/boost/ticket/4299 Best, Dee
participants (5)
-
Diederick C. Niehorster
-
Ilya Sokolov
-
immanuel litzroth
-
Jeremy Abramson
-
Vladimir Prus