Update README.md

This commit is contained in:
Pranav Srinivas Kumar 2019-03-31 10:36:31 -04:00 committed by GitHub
parent 07cad7ac9e
commit 4245c1a850
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,61 +3,70 @@
## Positional Arguments ## Positional Arguments
```cpp ```cpp
#include <argparse.hpp>
int main(int argc, char *argv[]) {
argparse::ArgumentParser program("main"); argparse::ArgumentParser program("main");
program.add_argument("input"); program.add_argument("input");
program.add_argument("output"); program.add_argument("output");
program.parse(argc, argv); program.parse_args({"./main", "rocket.msh", "thrust_profile.csv"});
std::string input = program.get("input");
std::string output = program.get("output");
return 0; std::string input = program.get("input"); // "rocket.msh"
} std::string output = program.get("output"); // "thrust_profile.csv"
``` ```
## Optional Arguments ## Optional Arguments
```cpp ```cpp
#include <argparse.hpp>
int main(int argc, char *argv[]) {
argparse::ArgumentParser program("main"); argparse::ArgumentParser program("main");
program.add_argument("--config") program.add_argument("--config")
.help("configuration file") .help("configuration file")
.default_value(std::string("config.yml")); .default_value(std::string("config.json"));
program.add_argument("-n", "--num_iterations") program.add_argument("-n", "--num_iterations")
.help("The list of input files") .help("The list of input files")
.action([](const std::string& value) { return std::stoi(value); }); .action([](const std::string& value) { return std::stoi(value); });
program.parse(argc, argv); program.parse_args({"./main", "-n", "36"});
std::string config = program.get("--config");
int num_iterations = program.get<int>("-n");
return 0; std::string config = program.get("--config"); // config.json
} int num_iterations = program.get<int>("-n"); // 36
``` ```
## List of Arguments ## Vector of Arguments
```cpp ```cpp
#include <argparse.hpp>
int main(int argc, char *argv[]) {
argparse::ArgumentParser program("main"); argparse::ArgumentParser program("main");
program.add_argument("--input_files") program.add_argument("--input_files")
.help("The list of input files") .help("The list of input files")
.nargs(3); .nargs(3);
program.parse(argc, argv); program.parse_args({"./main", "--input_files", "config.yml", "System.xml"});
std::vector<std::string> files = program.get<std::vector<std::string>>("--input_files");
return 0; auto files = program.get<std::vector<std::string>>("--input_files"); // {"config.yml", "System.xml"}
} ```
## Compound Toggle Arguments
```cpp
argparse::ArgumentParser program("test");
program.add_argument("-a")
.default_value(false)
.implicit_value(true);
program.add_argument("-b")
.default_value(false)
.implicit_value(true);
program.add_argument("-c")
.nargs(2)
.action([](const std::string& value) { return std::stof(value); });
program.parse_args({ "./main", "-abc", "3.14", "2.718" });
auto a = program.get<bool>("-a"); // true
auto b = program.get<bool>("-b"); // true
auto c = program.get<std::vector<float>>("-c"); // {3.14f, 2.718f}
``` ```