Using exceptions in arguments parser is something that just cannot be justified.
04.05.2017, 09:22, "Igor Mironchik" <igor.mironc...@gmail.com>: > Hello guys, > > I know that Qt already has its own stuff for CLI parsing. I don't remember > who told it, but - more good libraries, more and more... > > I want to tell you about Args. Probably you know about QtArg. So QtArg is a > parent of Args. Args on one side a little simpler than QtArg, but on another > side it has different features. Args support both worlds - pure C++ (with > std::string or std::wstring) and Qt with QString. You just define > ARGS_WSTRING_BUILD, ARGS_QSTRING_BUILD or nothing to build Args with > std::wstring, QString or std::string support. > > Bellow is release announcement of Args 3.0.1 >> "First of all I have to say about new features in Args version 3.0.1. In >> this version was added new class ArgAsCommand. This is special argument with >> name like in Command (i.e. without starting dashes). But this is not a >> command. Command can has child arguments, groups. But ArgAsCommand can't. It >> can has one value or many values, or can be without value. ArgAsCommand can >> be defined only once in CLI. And ArgAsCommand can be added into groups and >> commands. >> >> I wrote about commands, but what is it?! Command is an argument in CLI >> without starting dashes, like "add", "delete", "move". And in command >> developer can add child arguments. Child argument are valid only if command >> was defined. This is reflected in help of Args, I wrote about it. >> >> And groups... Why developer need them? Groups are useful for checking of >> state of arguments after parsing. You can just say - I want arguments "-a" >> and "-b" to be required and I want only one of arguments "-c" and "-d" be >> required, i.e. if defined both "-c" and "-d" - is an error. You can mix >> groups in any way, you can nest them. And I suggest to name groups like - >> "only one argument can be defined - "-c" or "-d"". In this case user will >> see understandable error message if he will put wrong arguments. >> >> Since first version of Args there are two types of arguments. These are Arg >> and MultiArg. Different is simple - Arg can be defined only once whereas >> MultiArg can be defined multiply times. These arguments can be with value or >> without, can be required or not. >> >> And one more thing that you should know about groups - you can't add >> required argument into group, and you can't add command into it. But if >> group is AllOfGroup and it's required then in help arguments of this group >> will be printed as required." > > And in Args 4.0.0 was added support of different string types. > > Major difference of Args with QtArg that Args doesn't support any number of > names of argument, you just can specify name and flag. But in Args > implemented different groups and ArgAsCommand. And in Args you can't shorten > name of argument, you have to write full name. > > I think that I will stop further development of QtArg, I will fix bugs only, > but new features I will not add. > > Args you can find here - https://github.com/igormironchik/args-parser > > Virus-free. www.avg.com > , > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest