]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/getopt.h
Use default member initializers and constructor delegation
[libs/core.git] / source / core / getopt.h
index e60a22693483ef4626a039e2ab4e0a33399c045e..a1208f4c1fa9e423314225bb87e8fc91903149e8 100644 (file)
@@ -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 = 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);
@@ -147,9 +147,9 @@ private:
        {
        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);
@@ -203,22 +203,15 @@ 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:
        GetOpt();
        ~GetOpt();
 
-       /** Returns any non-option arguments encountered during processing.
-       Deprecated. */
-       const std::vector<std::string> &get_args() const { return args_raw; }
-
        /** Adds an option with both short and long forms.  Processing depends on
        the type of the destination variable and whether an argument is taken or
        not.  With an argument, the value is lexical_cast to the appropriate type