39 enum class Multiplicity { zero , zero_or_one , one , many , error } ;
42 std::string description ;
43 std::string description_extra ;
44 Multiplicity value_multiplicity ;
46 std::string value_description ;
48 unsigned int main_tag ;
49 unsigned int tag_bits ;
51 Option(
char c ,
const std::string & name ,
const std::string & description ,
52 const std::string & description_extra , Multiplicity value_multiplicity ,
53 const std::string & vd ,
unsigned int level ) ;
56 Option(
char c ,
const char * name ,
const char * description ,
57 const char * description_extra , Multiplicity value_multiplicity ,
58 const char * vd ,
unsigned int level ,
59 unsigned int main_tag ,
unsigned int tag_bits ) ;
62 static Multiplicity
decode(
const std::string & ) ;
67 bool defaulting()
const ;
68 bool multivalued()
const ;
69 bool visible()
const ;
70 bool visible( std::pair<unsigned,unsigned> level_range ,
unsigned int main_tag = 0U ,
unsigned int tag_bits = 0U )
const ;
73inline bool G::Option::valued()
const {
return value_multiplicity != Multiplicity::zero ; }
74inline bool G::Option::defaulting()
const {
return value_multiplicity == Option::Multiplicity::zero_or_one ; }
75inline bool G::Option::multivalued()
const {
return value_multiplicity == Option::Multiplicity::many ; }
76inline bool G::Option::visible()
const {
return visible( {1U,99U} ) ; }
77inline bool G::Option::visible( std::pair<unsigned,unsigned> level_range ,
unsigned int main_tag_in ,
unsigned int tag_bits_in )
const
81 level >= level_range.first &&
82 level <= level_range.second &&
83 ( main_tag_in == 0U || main_tag_in == main_tag ) &&
84 ( tag_bits_in == 0U || ( tag_bits_in & tag_bits ) != 0U ) ;
A structure representing a G::Options command-line option.
Option(char c, const std::string &name, const std::string &description, const std::string &description_extra, Multiplicity value_multiplicity, const std::string &vd, unsigned int level)
Constructor taking strings.
static Multiplicity decode(const std::string &)
Decodes a multiplicity string into its enumeration.