X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fgetopt.h;h=a1208f4c1fa9e423314225bb87e8fc91903149e8;hb=122846f0881673770d88eff7d925ecf25c01b62e;hp=64a946c80f1b4bd9ee35509c8f297fde0bdf6671;hpb=2d608d773f3494e84cb154bdbb07954e87d9af86;p=libs%2Fcore.git diff --git a/source/core/getopt.h b/source/core/getopt.h index 64a946c..a1208f4 100644 --- a/source/core/getopt.h +++ b/source/core/getopt.h @@ -6,7 +6,6 @@ #include #include #include -#include "attributes.h" #include "noncopyable.h" namespace Msp { @@ -118,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); @@ -148,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); @@ -204,22 +203,15 @@ private: { data.push_back(lexical_cast(a)); } }; - typedef std::list OptionList; - typedef std::list ArgumentList; - - bool help; - OptionList opts; - ArgumentList args; + bool help = false; + std::vector opts; + std::vector args; std::vector args_raw; public: GetOpt(); ~GetOpt(); - /** Returns any non-option arguments encountered during processing. - Deprecated; use add_argument instead. */ - DEPRECATED const std::vector &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