Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
PrevUpHomeNext

Type style_t

boost::program_options::command_line_style::style_t

Synopsis

// In header: <boost/program_options/cmdline.hpp>


enum style_t { allow_long =  1, allow_short =  allow_long << 1, 
               allow_dash_for_short =  allow_short << 1, 
               allow_slash_for_short =  allow_dash_for_short << 1, 
               long_allow_adjacent =  allow_slash_for_short << 1, 
               long_allow_next =  long_allow_adjacent << 1, 
               short_allow_adjacent =  long_allow_next << 1, 
               short_allow_next =  short_allow_adjacent << 1, 
               allow_sticky =  short_allow_next << 1, 
               allow_guessing =  allow_sticky << 1, 
               case_insensitive =  allow_guessing << 1, 
               allow_long_disguise =  case_insensitive << 1, 
               unix_style =  (allow_short | short_allow_adjacent | short_allow_next
                      | allow_long | long_allow_adjacent | long_allow_next
                      | allow_sticky | allow_guessing 
                      | allow_dash_for_short), 
               default_style =  unix_style };

Description

Various possible styles of options.

There are "long" options, which start with "--" and "short", which start with either "-" or "/". Both kinds can be allowed or disallowed, see allow_long and allow_short. The allowed character for short options is also configurable.

Option's value can be specified in the same token as name ("--foo=bar"), or in the next token.

It's possible to introduce long options by the same character as short options, see allow_long_disguise.

Finally, guessing (specifying only prefix of option) and case insensitive processing are supported.

allow_long
Allow "--long_name" style.
allow_short
Alow "-<single character" style.
allow_dash_for_short
Allow "-" in short options.
allow_slash_for_short
Allow "/" in short options.
long_allow_adjacent

Allow option parameter in the same token for long option, like in --foo=10

long_allow_next

Allow option parameter in the next token for long options.

short_allow_adjacent

Allow option parameter in the same token for short options.

short_allow_next

Allow option parameter in the next token for short options.

allow_sticky

Allow to merge several short options together, so that "-s -k" become "-sk". All of the options but last should accept no parameter. For example, if "-s" accept a parameter, then "k" will be taken as parameter, not another short option. Dos-style short options cannot be sticky.

allow_guessing

Allow abbreviated spellings for long options, if they unambiguously identify long option. No long option name should be prefix of other long option name if guessing is in effect.

case_insensitive

Ignore the difference in case for options. Todo

Should this apply to long options only?

allow_long_disguise

Allow long options with single option starting character, e.g -foo=10

unix_style

The more-or-less traditional unix style.

default_style

The default style.


PrevUpHomeNext