⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program_options.dox

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 DOX
字号:
/** @mainpage Program options documentation     @section scope Scope    Briefly, the library should allow program developers to obtain    <em>program options</em>, i.e. (name,value) pairs from the user,    via conventional methods such as command line and config file.        Necessary facilities include:    - parse command line    - parse config files    - perform semantic validation on input, such as checking for correct      type of parameters, and storing values.    - combine all inputs together, so that all program options can      be obtained in one place.    @section goals Goals    The fundamental goals for this library were:    - it should be more convenient to use it than parse command line by hand,      even when the number of possible options is 2,    - all popular command line styles should be supported,    - "you pay for what you use" principle is important: simple utilities      need not be forced to depend on excessive amount of code.    - it must be possible to validate option values, convert them to required      types, and store either in program variables, or in data structures      maintained by the library.    - data from command line and config file should be usable together, and      alternative program option sources (such as registry) should be      possible.   @section design_overview Design overview   To meet the stated goals, the library uses a layered architecture.   -# At the bottom, there are two parser classes,       boost::program_options::cmdline and       boost::program_options::config_file.    They are responsible for syntax matters only and provide simple     iterator-like interface.   -# The boost::program_options::options_and_arguments holds the result of parsing command line or    config file. It is still concerned with syntax only and holds precisely    what is found on command line. There's a couple of associated parse    functions (    @ref parse_cmdline_func "1",    @ref parse_config_file_func "2"),     which relieve the user from the need to iterate over options     and arguments manually.   -# The class boost::program_options::options_description is a high-level     description of allowed    program options, which does not depend on concrete parser class. In    addition, it can be used to provide help message. There are parse    functions which return options_and_arguments given options_description.   -# The options_description class also has semantic responsibilities. It's    possible to specify validators for option, their default values, and the     like. There's a function boost::program_options::perform_semantic_actions,     which handles this information and returns a map of option values.   -# Finally, at the top, there boost::program_options::variables_map class.     It's possible to    store options in it, and obtain them later. Another feature is that    different variable_map instances can be linked together, so that both    command line and config file data is used. Additional option sources can    be added at this level.      @section futher_reading Futher reading   To get further information about the library, you might want to read   the documentation for the classes referenced above. Another possibility   is to look through the examples:       -  @ref options_description "simple usage"    -  @ref variables_map "parsing with validation and assignment to program variables"    -  @ref multiple_sources "using command line and config file together"    -  @ref custom_syntax "customized options syntax"    -  @ref real_example "real example"    -  @ref custom_validator "custom validator"    -  @ref multiple_modules "possible approach for multi-module programs"    -  @ref cmdline "low level cmdline parsing"    Finally, you might want the check out the @ref recipes "recipes" page.*//** @page examples Examples    -  @ref options_description "simple usage"    -  @ref variables_map "parsing with validation and assignment to program variables"    -  @ref multiple_sources "using command line and config file together"    -  @ref custom_syntax "customized options syntax"    -  @ref real_example "real example"    -  @ref custom_validator "custom validator"    -  @ref multiple_modules "possible approach for multi-module programs"    -  @ref cmdline "low level cmdline parsing"*//** @page options_description Options description    Example of quite a simple usage. Options are registered and the     command line is parsed. The user is responsible to interpreting the    option values. This also how automatic help message.    @include options_description.cpp*//** @page variables_map Variables map    In this example, the <tt>parameter</tt> function is used to enable    validation of options (i.e. checking that they are of correct type).    The option values are also stored in program variables.    @include variables_map.cpp*//** @page multiple_sources Multiple sources    It is possible for program options to come from different sources.     Here, the command line and a config file are used, and the values    specified in both are combined, with preferrence given to the    command line.    @include multiple_sources.cpp*//** @page custom_syntax Custom syntax    Some applications use a custom syntax for the command line. In this    example, the gcc style of &quot;-fbar&quot;/&quot;-f&quot; is handled.    @include custom_syntax.cpp*//** @page real_example A real example    Shows how to use custom option description class and custom formatter.    Also validates some option relationship.    @include real.cpp*//** @page multiple_modules Multiple modules    Large programs are likely to have several modules which want to use    some options. One possible approach is show here.    @sa @ref recipe_multiple_modules    @include multiple_modules.cpp *//** @page custom_validator Custom validator    It's possible to plug in arbitrary function for converting the string    value from the command line to the value used in your program. The    example below illustrates this.    @include regex.cpp*//** @page cmdline The cmdline class    When validation or automatic help message are not needed, it's possible    to use low-level boost::program_options::cmdline class, like shown    in this example.    @include cmdline.cpp*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -