27#if __has_include("defs.h")
39 OptParser (std::vector<const char*>& list);
42 OptParser (std::initializer_list<const char*> list);
54 int parse (
int argc,
const char*
const* argv,
int* stop =
nullptr);
57 int parse (
const std::vector<std::string>& args,
int* stop =
nullptr);
61 bool next (std::string& opt, std::string& optarg,
char sep =
'|');
64 bool next (std::string& opt, std::vector<std::string>& optarg);
69 int getopt (
const std::string& option, std::string& optarg,
char sep =
'|')
const;
72 int getopt (
const std::string& option, std::vector<std::string>& optarg)
const;
75 int getopt (
char option, std::string& optarg,
char sep =
'|')
const;
78 int getopt (
char option, std::vector<std::string>& optarg)
const;
83 bool hasopt (
const std::string& option)
const;
86 bool hasopt (
char option)
const;
93 const std::string
description (
size_t indent_size = 2)
const;
96 const std::string&
appname ()
const;
104 std::string arg_descr;
105 std::vector<std::string> arg;
109 std::vector<opt>::const_iterator find_option (
const std::string& opt)
const;
110 std::vector<opt>::const_iterator find_option (
char opt)
const;
111 void format_arg (std::string& str,
const opt& option,
char sep)
const;
113 std::vector<opt> optlist;
114 std::vector<opt> cmd;
115 std::vector<opt>::iterator nextop;
132 return find_option (option) != cmd.end ();
141 return find_option (option) != cmd.end ();
154 auto p = find_option (option);
171 auto p = find_option (option);
int parse(int argc, const char *const *argv, int *stop=nullptr)
Parse a command line.
Definition options.cpp:242
int getopt(const std::string &option, std::string &optarg, char sep='|') const
Definition options.cpp:466
const std::string synopsis() const
Return a nicely formatted syntax string containing all the options.
Definition options.cpp:490
OptParser()
Initialize parser.
Definition options.cpp:97
bool hasopt(const std::string &option) const
Definition options.h:130
const std::string description(size_t indent_size=2) const
Return options description.
Definition options.cpp:558
bool next(std::string &opt, std::string &optarg, char sep='|')
Definition options.cpp:415
void add_option(const char *descr)
Add a new option descriptor to the list of options.
Definition options.cpp:200
void set_options(std::vector< const char * > &list)
Set list of valid options.
Definition options.cpp:141
const std::string & appname() const
Return program name.
Definition options.h:122