My program (prog.exe
) supports the following four flags: -P
, -p
, -b
and -s
. However:
-b
and-p
must be specified together, constitute a set, and have numeric values e.g.-b 42
-s
cannot be specified with the above set, and vice versa-P
is mandatory in both cases
As such prog.exe
can only be run as either
prog.exe -P -s
or
prog.exe -P -b -42 -p 8
Is there a way to specify the above sets of mutually exclusive command line options in boost program options?
You should start with a few tutorials [1][2] to understand how
boost::program_options
works.Then, you can define two mutually exclusive options simply defining a small function as explained in real.cpp. For example, you can specify two conflicting (or depending) options defining a
conflicting_options()
function:and then calling
right after
boost::program_options::store()
I still don't understand if it's possible to define two mutually exclusive positional options, but that should be another question.