|
|
The `-' character preceding an option or option block is called the option ``flag''. Some program wish to treat the `+' character as a flag as well. Usually the `+' version of an option has the opposite meaning of the `-' version:
cc -c foo.c // compile-only cc +c foo.c // do not compile-only (the default)
Sometimes, however, the `+' and `-' versions have completely different meanings:
cc -p foo.c // profiling cc +p foo.c // do not allow anachronistic constructs
Treatment of `+' as an option flag is specified as follows:
Args args(argc, argv, "co:OI:D;p", Args::intermix | Args::plusoptions);
The choice of how to interpret the relation between `+' and `-' options is completely up to the program. Here is how the +p and -p options above would be programmed:
int allow_anachronisms = 1; int profiling = 0;main(int argc, const char*const* argv) { Args args(argc, argv, "co:OI:D;p", Args::intermix | Args::plusoptions); // ... switch (opt->chr()) { // ... case 'p': if (opt->flag() == '+') allow_anachronisms = 0; else profiling = 1; break; } } // ... }