class usage_error: public std::runtime_error
{
private:
- std::string help_;
+ std::string m_help;
public:
- usage_error(const std::string &w, const std::string &h = std::string()): std::runtime_error(w), help_(h) { }
- ~usage_error() throw() { }
+ usage_error(const std::string &w, const std::string &h = std::string()): std::runtime_error(w), m_help(h) { }
+ virtual ~usage_error() throw() = default;
- const char *help() const throw() { return help_.c_str(); }
+ const char *help() const throw() { return m_help.c_str(); }
};
class Option
{
protected:
- Option() { }
+ Option() = default;
public:
- virtual ~Option() { }
+ virtual ~Option() = default;
/// Sets help text for the option.
virtual Option &set_help(const std::string &) = 0;
class Argument
{
protected:
- Argument() { }
+ Argument() = default;
public:
- virtual ~Argument() { }
+ virtual ~Argument() = default;
virtual Argument &set_help(const std::string &) = 0;
};
class Store
{
protected:
- Store() { }
+ Store() = default;
public:
- virtual ~Store() { }
+ virtual ~Store() = default;
virtual Store *clone() const = 0;
class OptionImpl: public Option
{
protected:
- char shrt;
+ char shrt = 0;
std::string lng;
- ArgType arg_type;
- unsigned seen_count;
- unsigned *ext_seen_count;
+ ArgType arg_type = NO_ARG;
+ unsigned seen_count = 0;
+ unsigned *ext_seen_count = 0;
std::string help;
- std::string metavar;
- Store *store;
+ std::string metavar = "ARG";
+ Store *store = 0;
public:
OptionImpl(char, const std::string &, const Store &, ArgType);
{
private:
std::string name;
- ArgType type;
+ ArgType type = REQUIRED_ARG;
std::string help;
- Store *store;
+ Store *store = 0;
public:
ArgumentImpl(const std::string &, const Store &, ArgType);
{ data.push_back(lexical_cast<typename T::value_type>(a)); }
};
- bool help;
- std::list<OptionImpl *> opts;
- std::list<ArgumentImpl *> args;
+ bool help = false;
+ std::vector<OptionImpl *> opts;
+ std::vector<ArgumentImpl *> args;
std::vector<std::string> args_raw;
public: