35 #ifndef MULTOVL_POLITE_HEADER
36 #define MULTOVL_POLITE_HEADER
56 #include "boost/program_options.hpp"
57 namespace bpo = boost::program_options;
97 std::vector<std::string>
pos_opts()
const;
127 std::ostream&
print_help(std::ostream& out)
const;
139 explicit Polite(
const std::string& descr =
"Options");
149 template <
typename Opttype>
150 void add_option(
const std::string& name, Opttype* optvarp,
const Opttype& defval,
151 const std::string& descr,
const char nm =
'\0')
153 std::string oname = (nm ==
'\0')? name: name +
',' + nm;
156 bpo::value<Opttype>(optvarp),
172 const std::string& descr,
const char nm =
'\0');
180 template <
typename Opttype>
183 std::string oname = (nm ==
'\0')? name: name +
',' + nm;
186 bpo::value<Opttype>(),
232 bool option_seen(
const std::string& optnm)
const {
return (_vm.count(optnm) > 0); }
237 template <
typename Opttype>
238 Opttype
fetch_value(
const std::string& optnm)
const {
return (_vm[optnm].as<Opttype>()); }
261 bpo::options_description _desc, _hidden;
262 bpo::positional_options_description _posdesc;
263 bpo::variables_map _vm;
265 std::ostringstream _errors;
271 #endif // MULTOVL_POLITE_HEADER
virtual std::ostream & version_info(std::ostream &out) const
void add_bool_switch(const std::string &name, bool *varp, const std::string &descr, const char nm= '\0')
Opttype fetch_value(const std::string &optnm) const
Definition: polite.hh:238
void add_option(const std::string &name, Opttype *optvarp, const Opttype &defval, const std::string &descr, const char nm= '\0')
Definition: polite.hh:150
void error_reset()
Reset the error status to "no error".
bool version_needed() const
Definition: polite.hh:110
virtual std::ostream & print_version(std::ostream &out) const
Definition: polite.hh:116
virtual std::ostream & print_help(std::ostream &out) const
virtual bool check_variables()=0
bool option_seen(const std::string &optnm) const
Definition: polite.hh:232
bool help_needed() const
Definition: polite.hh:121
std::vector< std::string > pos_opts() const
Polite(const std::string &descr="Options")
void add_error(const std::string &msg)
bool parse_check(int argc, char *argv[])
bool perform_parsing(int argc, char *argv[])
void add_mandatory_option(const std::string &name, const std::string &descr, const char nm= '\0')
Definition: polite.hh:181
void process_commandline(int argc, char *argv[])
std::string error_messages() const
Definition: polite.hh:106
bool error_status() const
Definition: polite.hh:101
Program Options LITE base class. The Polite class provides a wrapper over boost::program_options to m...
Definition: polite.hh:71