namespace args {
class Parser {
public:
using option_t = args_option_t;
using argp_t = args_argp_t;
using option_t = args_option_t;
using argp_t = args_argp_t;
static int parse(argp_t *argp, int argc, char *argv[], void *input) {
Parser parser(input, argp);
return parser.parse(argc, argv, &parser);
}
int parse(const argp_t *argp, int argc, char *argv[], void *input);
void *input;
class Parser {
public:
void *input() const { return m_input; }
private:
Parser(void *input, argp_t *argp);
friend int parse(const argp_t *argp, int argc, char *argv[], void *input);
Parser(const argp_t *argp, void *input);
int parse(int argc, char *argv[], void *input);