Blame view

3rdparty/boost_1_81_0/boost/program_options/cmdline.hpp 3.61 KB
0b6a182c   Hu Chunming   添加无鉴权注册和注销
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
  // Copyright Vladimir Prus 2004.
  // Distributed under the Boost Software License, Version 1.0.
  // (See accompanying file LICENSE_1_0.txt
  // or copy at http://www.boost.org/LICENSE_1_0.txt)
  
  #ifndef BOOST_CMDLINE_HPP_VP_2004_03_13
  #define BOOST_CMDLINE_HPP_VP_2004_03_13
  
  namespace boost { namespace program_options { namespace command_line_style {
      /** 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.
      */
      enum style_t {
          /// Allow "--long_name" style
          allow_long = 1,
          /// Allow "-<single character" style
          allow_short = allow_long << 1,
          /// Allow "-" in short options
          allow_dash_for_short = allow_short << 1,
          /// Allow "/" in short options
          allow_slash_for_short = allow_dash_for_short << 1,
          /** Allow option parameter in the same token
              for long option, like in
              @verbatim
              --foo=10
              @endverbatim
          */
          long_allow_adjacent = allow_slash_for_short << 1,
          /** Allow option parameter in the next token for
              long options. */
          long_allow_next = long_allow_adjacent << 1,
          /** Allow option parameter in the same token for
              short options. */
          short_allow_adjacent = long_allow_next << 1,
          /** Allow option parameter in the next token for
              short options. */
          short_allow_next = short_allow_adjacent << 1,
          /** 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_sticky = short_allow_next << 1,
          /** 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.
          */
          allow_guessing = allow_sticky << 1,
          /** Ignore the difference in case for long options.
          */            
          long_case_insensitive = allow_guessing << 1,        
          /** Ignore the difference in case for short options.
          */            
          short_case_insensitive = long_case_insensitive << 1,
          /** Ignore the difference in case for all options.
          */        
          case_insensitive = (long_case_insensitive | short_case_insensitive),        
          /** Allow long options with single option starting character,
              e.g <tt>-foo=10</tt>
          */
          allow_long_disguise = short_case_insensitive << 1,
          /** The more-or-less traditional unix style. */
          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),
          /** The default style. */
          default_style = unix_style
      };
  }}}
  
  
  #endif