]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/getopt.h
Use nullptr instead of 0 for pointers
[libs/core.git] / source / core / getopt.h
index 3b579a664feff1caec0786de762b305647e5fe78..ade620bf94d5c46bc2b6c36197a807a4b4edb986 100644 (file)
@@ -13,13 +13,13 @@ namespace Msp {
 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(); }
 };
 
 
@@ -72,9 +72,9 @@ public:
        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;
@@ -92,9 +92,9 @@ public:
        class Argument
        {
        protected:
-               Argument() { }
+               Argument() = default;
        public:
-               virtual ~Argument() { }
+               virtual ~Argument() = default;
 
                virtual Argument &set_help(const std::string &) = 0;
        };
@@ -103,9 +103,9 @@ private:
        class Store
        {
        protected:
-               Store() { }
+               Store() = default;
        public:
-               virtual ~Store() { }
+               virtual ~Store() = default;
 
                virtual Store *clone() const = 0;
 
@@ -117,14 +117,14 @@ private:
        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 = nullptr;
                std::string help;
-               std::string metavar;
-               Store *store;
+               std::string metavar = "ARG";
+               Store *store = nullptr;
 
        public:
                OptionImpl(char, const std::string &, const Store &, ArgType);
@@ -147,9 +147,9 @@ private:
        {
        private:
                std::string name;
-               ArgType type;
+               ArgType type = REQUIRED_ARG;
                std::string help;
-               Store *store;
+               Store *store = nullptr;
 
        public:
                ArgumentImpl(const std::string &, const Store &, ArgType);
@@ -203,12 +203,9 @@ private:
                { data.push_back(lexical_cast<typename T::value_type>(a)); }
        };
 
-       typedef std::list<OptionImpl *> OptionList;
-       typedef std::list<ArgumentImpl *> ArgumentList;
-
-       bool help;
-       OptionList opts;
-       ArgumentList args;
+       bool help = false;
+       std::vector<OptionImpl *> opts;
+       std::vector<ArgumentImpl *> args;
        std::vector<std::string> args_raw;
 
 public: