The Lean Mean C++ Option Parser
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | Public Attributes
Stats Struct Reference

Detailed Description

Determines the minimum lengths of the buffer and options arrays used for Parser.

Because Parser doesn't use dynamic memory its output arrays have to be pre-allocated. If you don't want to use fixed size arrays (which may turn out too small, causing command line arguments to be dropped), you can use Stats to determine the correct sizes. Stats work cumulative. You can first pass in your default options and then the real options and afterwards the counts will reflect the union.

Definition at line 913 of file optionparser.h.

Public Member Functions

 Stats ()
 Creates a Stats object with counts set to 1 (for the sentinel element).
 Stats (bool gnu, const Descriptor usage[], int argc, const char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 Creates a new Stats object and immediately updates it for the given usage and argument vector. You may pass 0 for argc and/or argv, if you just want to update options_max.
 Stats (bool gnu, const Descriptor usage[], int argc, char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 Stats(...) with non-const argv.
 Stats (const Descriptor usage[], int argc, const char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 POSIX Stats(...) (gnu==false).
 Stats (const Descriptor usage[], int argc, char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 POSIX Stats(...) (gnu==false) with non-const argv.
void add (bool gnu, const Descriptor usage[], int argc, const char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 Updates this Stats object for the given usage and argument vector. You may pass 0 for argc and/or argv, if you just want to update options_max.
void add (bool gnu, const Descriptor usage[], int argc, char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 add() with non-const argv.
void add (const Descriptor usage[], int argc, const char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 POSIX add() (gnu==false).
void add (const Descriptor usage[], int argc, char **argv, int min_abbr_len=0, bool single_minus_longopt=false)
 POSIX add() (gnu==false) with non-const argv.

Public Attributes

unsigned buffer_max
 Number of elements needed for a buffer[] array to be used for parsing the same argument vectors that were fed into this Stats object.
unsigned options_max
 Number of elements needed for an options[] array to be used for parsing the same argument vectors that were fed into this Stats object.

Constructor & Destructor Documentation

Stats ( )

Creates a Stats object with counts set to 1 (for the sentinel element).

Definition at line 942 of file optionparser.h.

Stats ( bool  gnu,
const Descriptor  usage[],
int  argc,
const char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

Creates a new Stats object and immediately updates it for the given usage and argument vector. You may pass 0 for argc and/or argv, if you just want to update options_max.

Note:
The calls to Stats methods must match the later calls to Parser methods. See Parser::parse() for the meaning of the arguments.

Definition at line 956 of file optionparser.h.

Stats ( bool  gnu,
const Descriptor  usage[],
int  argc,
char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

Stats(...) with non-const argv.

Definition at line 964 of file optionparser.h.

Stats ( const Descriptor  usage[],
int  argc,
const char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

POSIX Stats(...) (gnu==false).

Definition at line 972 of file optionparser.h.

Stats ( const Descriptor  usage[],
int  argc,
char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

POSIX Stats(...) (gnu==false) with non-const argv.

Definition at line 980 of file optionparser.h.


Member Function Documentation

void add ( bool  gnu,
const Descriptor  usage[],
int  argc,
const char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

Updates this Stats object for the given usage and argument vector. You may pass 0 for argc and/or argv, if you just want to update options_max.

Note:
The calls to Stats methods must match the later calls to Parser methods. See Parser::parse() for the meaning of the arguments.

Definition at line 1485 of file optionparser.h.

void add ( bool  gnu,
const Descriptor  usage[],
int  argc,
char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

add() with non-const argv.

Definition at line 1000 of file optionparser.h.

void add ( const Descriptor  usage[],
int  argc,
const char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

POSIX add() (gnu==false).

Definition at line 1007 of file optionparser.h.

void add ( const Descriptor  usage[],
int  argc,
char **  argv,
int  min_abbr_len = 0,
bool  single_minus_longopt = false 
)

POSIX add() (gnu==false) with non-const argv.

Definition at line 1014 of file optionparser.h.


Member Data Documentation

unsigned buffer_max

Number of elements needed for a buffer[] array to be used for parsing the same argument vectors that were fed into this Stats object.

Note:
This number is always 1 greater than the actual number needed, to give you a sentinel element.

Definition at line 924 of file optionparser.h.

unsigned options_max

Number of elements needed for an options[] array to be used for parsing the same argument vectors that were fed into this Stats object.

Note:
  • This number is always 1 greater than the actual number needed, to give you a sentinel element.
  • This number depends only on the usage, not the argument vectors, because the options array needs exactly one slot for each possible Descriptor::index.

Definition at line 937 of file optionparser.h.


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator