15 argreader(string n_name);
18 *\brief add a parameter to be looked for
19 *\param shortname A character for the short form. For example the 'h' in -h
20 *\param longname The double dash longname. For example 'input_file=' in --input_file= or
21 * 'ignore_errors' in --ignore--errors
22 *\param description A parameter description.
23 *\param status Pointer to an integer. Will be set to 1 if arg found.
24 *\target Pointer to a value should be read. If no value is needed, pass NULL.
25 *\placeholder A placeholder for the documentation. For example "<filename>" in -f<filename>
27 void add_param (string shortname, string longname, string description, int * status,
28 string * target=NULL, string placeholder=string("<string>"));
31 * Read in the args passed to main().
32 *\returns empty vector on success or the error messages to be output.
34 vector<string> read_args(int argc, char ** args);
37 vector<string> & get_free_args();
39 void get_help(vector<string> & );
40 vector<string> get_help();
42 void add_free_param(string placeholder, string description, int * status, string * target);
49 parameter (string shortname, string longname,string description, int * status,
50 string * target=NULL, string placeholder=string("<string>"));
61 free_parameter (string placeholder,string description,
62 int * status, string * target);
69 vector<parameter>arguments;
70 vector<free_parameter>free_arguments;