#################### # No args is an error #################### # No short flag or an invalid short flag is an error #################### # A required and optional arg makes no sense #################### # A repeated and optional arg makes no sense #################### # An unexpected arg not associated with a flag is an error #################### # Bool, short only h #################### # Bool, short and long h/help #################### # Bool, short and long but the short var cannot be used h-help #################### # Required val, short and long but the short var cannot be used h-help= #################### # Optional val, short and long valid h/help=? #################### # Optional val, short and long but the short var cannot be used h-help=? #################### # Repeated val, short and long valid h/help=+ #################### # Repeated val, short and long but short not valid h-help=+ #################### # Repeated val, short only h=+ h=+