]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/getopt.cpp
Fix incorrect iterator manipulation
[libs/core.git] / source / core / getopt.cpp
index ec821e0d26aea1372c3314cc8a1a99a268d5443e..13e235f25152912a5f86466b129cd2a9bf5999c7 100644 (file)
@@ -32,7 +32,7 @@ GetOpt::OptionImpl &GetOpt::add_option(char s, const string &l, const Store &t,
                if((s!=0 && (*i)->get_short()==s) || (*i)->get_long()==l)
                {
                        delete *i;
-                       opts.erase(i++);
+                       i = opts.erase(i);
                }
                else
                        ++i;
@@ -260,7 +260,7 @@ string GetOpt::generate_help() const
        bool any_short = any_of(opts.begin(), opts.end(), [](const OptionImpl *o){ return o->get_short(); });
 
        string::size_type maxw = 0;
-       list<string> switches;
+       vector<string> switches;
        for(const OptionImpl *o: opts)
        {
                string swtch;
@@ -289,7 +289,7 @@ string GetOpt::generate_help() const
                maxw = max(maxw, swtch.size());
        }
 
-       list<string> pargs;
+       vector<string> pargs;
        for(const ArgumentImpl *a: args)
        {
                string parg = format("<%s>", a->get_name());