Welcome to Argo!ΒΆ
Argo is a single header C++11 library for argument parsing like a boss. It is light-weight, flexible, easy-to-use, and has out-of-the-box support for:
Long-hand (
--foo) and short-hand notation (-f)Options, toggles, flags, and positional arguments
Automatic short-hand generation and guessing of undefined short-hands
Automatic generation of
--help,--versionoptionsAutomatic dashing of names (
foo_bartofoo-bar)Automatic type conversions for basic types, and easily extensible for custom types
Automatic storage for basic types, including STL containers
Support for
std::optional(C++17, when setting-DARGO_ENABLE_STD_OPTIONAL=1)Advanced parsing:
Support for various flavours, such as
--foo 1 2and--foo=1,2and--foo=1 --foo=2and--foo 1 --foo 2or any combination thereofUnderstanding that
--debug falseand--no-debugare equivalent
Grouping of options, including inclusive and exclusive groups
Required and optional arguments
Cardinality: fixed number, one or more, zero or more
Response files: configuration files that use the same syntax as the command line
Helpful error messages
Beautiful and responsive output
Check out the Tutorial to quickly get started.