avaziman / OptionParser

Easy to use light-weight command line option parsing tool for C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Option Parser

Note: this project is still work in progress.

Features

  • Argument parsing
  • Argument checking
  • Default value
  • Variable binding

How to use:

  1. Initialize OptionParser:
    OptionParser op;
  1. Initialize your options using the following parameters: -names -> string vector -arg -> possible values are: -OptionArg::NONE -> argument won't be taken even if it's provided -OptionArg::OPT -> argument is optional -OptionArg::REQ -> argument is required -description (optional) -> string describing the option Example:
auto xOpt = Option<int>({"x", "set-x"}, OptionArg::OPT, "set variable x");
  1. Add your options:
OptionParser op;
auto xOpt = Option<int>({"x", "set-x"}, OptionArg::OPT, "set variable x");
op.AddOption(&xOpt);
  1. Parse
OptionParser op;
auto xOpt = Option<int>({"x", "set-x"}, OptionArg::OPT, "set variable x");
op.AddOption(&xOpt);
op.Parse();
  1. Retrieve argument
OptionParser op;
auto xOpt = Option<int>({"x", "set-x"}, OptionArg::OPT, "set variable x");
op.AddOption(&xOpt);
op.Parse();

int x = xOpt.Value();

Testing

GoogleTest is required for building tests, it shuold be located in the lib folder. Install:

cd build
git clone https://github.com/google/googletest/

About

Easy to use light-weight command line option parsing tool for C++

License:MIT License


Languages

Language:C++ 95.7%Language:CMake 4.3%