Skip to content

Commit 0f25ffb

Browse files
author
Jesse
committed
update readme to include argparse-1 changes
1 parent 00e05ab commit 0f25ffb

1 file changed

Lines changed: 22 additions & 5 deletions

File tree

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ A simple header only command line argument parser
55
Here is a simple example
66

77
```cpp
8-
#include <iostream>
98
#include "argparse.h"
109

10+
#include <iostream>
11+
#include <iterator>
12+
1113
int main(int argc, char* argv[]) {
12-
// run as: [program name] -a 1 -sdfl --flag -v 1 2.7 3 4 9 8.12 87 6
14+
// run as: [program name] "0 -c" abc -a 1 -sdfl --flag -v 1 2.7 3 4 9 8.12 87
15+
// [program name] -sdfv 1 -o "C:\Users\User Name\Directory - Name\file.dat" "C:\Users\User Name 2\Directory 2 - Name 2\file2.dat" C:/tmp/tmp.txt
1316
ArgumentParser parser("Argument parser example");
1417
parser.add_argument("-a", "an integer");
1518
parser.add_argument("-s", "an combined flag", true);
@@ -18,25 +21,39 @@ int main(int argc, char* argv[]) {
1821
parser.add_argument("--flag", "a flag");
1922
parser.add_argument("-v", "a vector", true);
2023
parser.add_argument("-l", "--long", "a long argument", false);
24+
parser.add_argument("--files", "input files", false);
2125
try {
2226
parser.parse(argc, argv);
2327
} catch (const ArgumentParser::ArgumentNotFound& ex) {
2428
std::cout << ex.what() << std::endl;
2529
return 0;
2630
}
2731
if (parser.is_help()) return 0;
28-
std::cout << parser.get<int>("a") << std::endl;
32+
std::cout << "a: " << parser.get<int>("a") << std::endl;
2933
std::cout << "flag: " << std::boolalpha << parser.get<bool>("flag")
3034
<< std::endl;
3135
std::cout << "d: " << std::boolalpha << parser.get<bool>("d") << std::endl;
3236
std::cout << "long flag: " << std::boolalpha << parser.get<bool>("l")
3337
<< std::endl;
3438
auto v = parser.getv<double>("v");
39+
std::cout << "v: ";
3540
std::copy(v.begin(), v.end(), std::ostream_iterator<double>(std::cout, " "));
36-
if (v.size()) std::cout << std::endl;
41+
double sum;
42+
for (auto& d : v) sum += d;
43+
std::cout << " sum: " << sum << std::endl;
44+
auto f = parser.getv<std::string>("files");
45+
std::cout << "files: ";
46+
std::copy(f.begin(), f.end(),
47+
std::ostream_iterator<std::string>(std::cout, " | "));
48+
std::cout << std::endl;
49+
f = parser.getv<std::string>("");
50+
std::cout << "free args: ";
51+
std::copy(f.begin(), f.end(),
52+
std::ostream_iterator<std::string>(std::cout, " "));
53+
std::cout << std::endl;
3754
return 0;
3855
}
3956
```
4057
4158
## Compiling
42-
Just add `argparse.h` to your include path. Requires compiler support for `<regex>` (ex: g++>=4.9)
59+
Just add `argparse.h` to your include path. No longer requires compiler support for `<regex>`

0 commit comments

Comments
 (0)