readme
This commit is contained in:
parent
37a397d3e6
commit
5810494286
48
Readme.md
Normal file
48
Readme.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Flags for C++
|
||||||
|
This project aims to recreate the functionality of the `flag` package from Golang.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
### Create a parser
|
||||||
|
```c++
|
||||||
|
#include "flags.h"
|
||||||
|
|
||||||
|
Parser parser;
|
||||||
|
or
|
||||||
|
// set the prefix and the help text
|
||||||
|
Parser parser("--", "Help:");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Declare a flag
|
||||||
|
```c++
|
||||||
|
// name, description, required, default value
|
||||||
|
std::string* x = parser.add<std::string>("myStr", "some description", true, "default value");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parse arguments and show help text
|
||||||
|
```c++
|
||||||
|
if (!parser.parse(argc, argv))
|
||||||
|
parser.help();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Declare a custom parser class
|
||||||
|
```c++
|
||||||
|
PARSER(MyTypeFlag, MyType, {
|
||||||
|
// parser body
|
||||||
|
// available variables:
|
||||||
|
// MyType value; <- storage for your value
|
||||||
|
// std::string arg; <- the next argument after the current flag
|
||||||
|
set_found(true);
|
||||||
|
try {
|
||||||
|
value = my_parser_function(arg);
|
||||||
|
set_found(true);
|
||||||
|
} catch(std::exception&) {}
|
||||||
|
})
|
||||||
|
|
||||||
|
parser.set_parser<MyType>(flag_constructor_t(MyTypeFlag::make));
|
||||||
|
```
|
||||||
|
|
||||||
|
## Built-in parsers
|
||||||
|
- std::string
|
||||||
|
- int (long, long long, unsigned long, unsigned long long)
|
||||||
|
- float, double, long double
|
||||||
|
- bool
|
Loading…
Reference in New Issue
Block a user