Blame view

3rdparty/boost_1_81_0/boost/program_options/option.hpp 2.43 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
  // 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_OPTION_HPP_VP_2004_02_25
  #define BOOST_OPTION_HPP_VP_2004_02_25
  
  #include <boost/program_options/config.hpp>
  
  #include <string>
  #include <vector>
  
  namespace boost { namespace program_options {
  
      /** Option found in input source.
          Contains a key and a value. The key, in turn, can be a string (name of
          an option), or an integer (position in input source) \-- in case no name
          is specified. The latter is only possible for command line.
          The template parameter specifies the type of char used for storing the
          option's value.
      */
      template<class charT>
      class basic_option {
      public:
          basic_option() 
          : position_key(-1)
          , unregistered(false) 
          , case_insensitive(false)
          {}
          basic_option(const std::string& xstring_key, 
                 const std::vector< std::string> &xvalue)
          : string_key(xstring_key)
          , position_key(-1)
          , value(xvalue)
          , unregistered(false)
          , case_insensitive(false)
          {}
  
          /** String key of this option. Intentionally independent of the template
              parameter. */
          std::string string_key;
          /** Position key of this option. All options without an explicit name are
              sequentially numbered starting from 0. If an option has explicit name,
              'position_key' is equal to -1. It is possible that both
              position_key and string_key is specified, in case name is implicitly
              added.
           */
          int position_key;
          /** Option's value */
          std::vector< std::basic_string<charT> > value;
          /** The original unchanged tokens this option was
              created from. */
          std::vector< std::basic_string<charT> > original_tokens;
          /** True if option was not recognized. In that case,
              'string_key' and 'value' are results of purely
              syntactic parsing of source. The original tokens can be
              recovered from the "original_tokens" member.
          */
          bool unregistered;
          /** True if string_key has to be handled
              case insensitive.
          */
          bool case_insensitive;
      };
      typedef basic_option<char> option;
      typedef basic_option<wchar_t> woption;
  
  }}
  
  #endif