Argument Parser for Modern C++ | Fix Xmake and Modules
Go to file
Pranav Srinivas Kumar a385d78919
Update README.md
2019-03-30 21:23:37 -04:00
src Implemented API and tests for programming implicit values in toggle arguments 2019-03-30 21:21:42 -04:00
tests Implemented API and tests for programming implicit values in toggle arguments 2019-03-30 21:21:42 -04:00
.gitignore Added visual studio gitignore 2019-03-30 16:59:57 -04:00
LICENSE Added LICENSE 2019-03-29 18:41:37 -04:00
README.md Update README.md 2019-03-30 21:23:37 -04:00

Argument Parser

Positional Arguments

#include <argparse.hpp>

int main(int argc, char *argv[]) {
  argparse::ArgumentParser program("main");
  
  program.add_argument("input");
  program.add_argument("output");
    
  program.parse(argc, argv);
  std::string input = program.get("input");
  std::string output = program.get("output");
  
  return 0;
}

Optional Arguments

#include <argparse.hpp>

int main(int argc, char *argv[]) {
  argparse::ArgumentParser program("main");
  
  program.add_argument("--config")
    .help("configuration file")
    .default_value(std::string("config.yml"));
    
  program.add_argument("-n", "--num_iterations")
    .help("The list of input files")
    .action([](const std::string& value) { return std::stoi(value); });
    
  program.parse(argc, argv);
  std::string config = program.get("--config");
  int num_iterations = program.get<int>("-n");  
  
  return 0;
}

List of Arguments

#include <argparse.hpp>

int main(int argc, char *argv[]) {
  argparse::ArgumentParser program("main");
  
  program.add_argument("--input_files")
    .help("The list of input files")
    .nargs(3);
    
  program.parse(argc, argv);
  std::vector<std::string> files = program.get<std::vector<std::string>>("--input_files");  
  
  return 0;
}