Skip to content

Simple and powerful C++ util for parsing command line arguments

Notifications You must be signed in to change notification settings

iximiuz/cpparseopt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPParseOpt - simple but powerful way to parse command line arguments

  • It's simple and obvious!
  • It's an OOP way of dealing with arguments.
  • Reading docs does not required, your IDE autocomplete will help.
  • No external dependencies.
  • Can be compiled with C++98 compiler.
  • Bonus feature: autogenerated usage message.

Example

#include "cpparseopt.h"
#include <iostream>

using namespace cpparseopt;

int main(int argc, char *argv[]) {
    Pattern pattern;
    Pattern::chain(pattern)
            .arg("arg1")
            .arg("arg2").defaultVal("default2")
            .arg("arg3").descr("descr3")
            .arg("arg4").defaultVal("default4").descr("descr4")
            .arg("arg5").descr("descr5").defaultVal("default5")
            .arg()
            .opt("-b").alias("--baz").alias("--bazar").descr("And here we go!")
            .flag("-f").alias("--foo").desc("So simple!");

    std::cout << pattern.usage() << std::endl;
    
    CmdLineParams params = pattern.match(argc, argv);
    std::cout << params.getArg("arg1").asString() << std::endl;
    std::cout << params.getArg(5).asDouble() << std::endl;
    std::cout << params.getOpt("-b").asInt() << std::endl;
    std::cout << params.hasFlag("--foo") << std::endl;
}

Version 0.0.1 (under construction)

TODOs

  • Consider removing Pattern.has(Arg|Opt|Flag)
  • Consider making ParsedParam as template class.

About

Simple and powerful C++ util for parsing command line arguments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published