Code Monkey home page Code Monkey logo

betterflag's Introduction

betterflag

It's a flag (golang package) implementation in C++, only useful methods has been implemented

Impl

The main implementation is distributed inside a C++ header file, making everything more portable

Usage example

BetterFlag::Flag flag(argc, const_cast<const char**>(argv));

unsigned int xValue{};
char *userName;

flag.UIntVar(&xValue, "xValue", 100, "Define X value, default is 100");
flag.StringVar(&userName, "username", "Gabriel Correia", "Setups user name");
flag.Parse();
    
fmt::print("X value: {}\n", xValue);
fmt::print("Username: {}\n", userName);

Some properties are inherited from Golang implementation

Supported methods

  • void PrintDefaults() const;
  • auto NFlag() const;
  • void Set(const char *flagName, const char *flagValue);
  • void Visit(VisitCallback visitCallback);
  • std::optional<const std::shared_ptr> Lookup(const char *flagName);
  • auto Arg(int index) const;
  • void VisitAll(VisitCallback visitCallback);
  • auto Output() const;
  • void SetOutput(FILE *outPrint);
  • void Parse();
  • void UIntVar(unsigned int* intPtr, const char* flagName, unsigned int defaultValue, const char* flagDesc);
  • void IntVar(int* intPtr, const char* flagName, int defaultValue, const char* flagDesc);
  • StringVar(char** stringPtr, const char* flagName, const char* defaultValue, const char* flagDesc);
  • bool Passed();
  • std::vector<const char*> Args();
  • void DefineFlagValue(const std::shared_ptr& flagAva, const char* flagArg);
  • Float64(double* intPtr, const char* flagName, double defaultValue, const char* flagDesc);

Supported values

  • FLAG_INTEGER (int)
  • FLAG_UNSIGNED_INTEGER (unsigned int)
  • FLAG_STRING (const char*)
  • FLAG_FLOAT_64 (double)

betterflag's People

Contributors

beloncode avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.