{
if(l.empty())
throw invalid_argument("GetOpt::add_option");
+ if(t.is_list() && a!=REQUIRED_ARG)
+ throw invalid_argument("GetOpt::add_option");
for(OptionList::iterator i=opts.begin(); i!=opts.end(); )
{
virtual Store *clone() const = 0;
+ virtual bool is_list() const = 0;
virtual void store() = 0;
virtual void store(const std::string &) = 0;
};
virtual SimpleStore *clone() const
{ return new SimpleStore(data); }
+ virtual bool is_list() const { return false; }
+
virtual void store() { }
virtual void store(const std::string &a)
virtual ListStore *clone() const
{ return new ListStore(data); }
+ virtual bool is_list() const { return true; }
+
virtual void store() { }
virtual void store(const std::string &a)