libargparse is a command line argument parser library in C++ The ArgParse class allows you to specify names of options that you want parsed, along with a usage message for them. Options come in four flavors: flag, int, float, and string. Flags don't take arguments, but the other kinds do. For an option that takes an argument, it can be specified with an equals sign, with a colon, or by putting it in the next element of argv. ("--foo=stuff", "--foo:stuff", or "--foo stuff", respectively) The flavors that take arguments also come in array flavors. With an array, you specify a pointer to a vector of the basic type, instead of just a pointer to a basic type. This allows the option to appear more than once, and the new values are appended to the array. Optionally, you can also specify a separator character, so that multiple array elements can be parsed up from a single instance of the option. Options can start with either a single dash or a double dash, but see allowOneCharOptionsToBeCombined() for more information.