Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A simple C++ header only command line argument parser

License

NotificationsYou must be signed in to change notification settings

jamolnng/argparse

Repository files navigation

A simple header only command line argument parser

MasterDevelop
Build StatusBuild Status

Table of Contents

Building With Git and CMake

Git andCMake

Make

Make

git clone https://github.com/jamolnng/argparse.gitcd argparsemkdir build&&cd buildcmake ..make

VSCode and CMake Tools

VSCode andCMake Tools extension

TODO

Visual Studio

Visual Studio Community

TODO

Example

#include<iostream>#include<iterator>#include"argparse.h"usingnamespaceargparse;intmain(int argc,constchar* argv[]) {  ArgumentParserparser("example","Argument parser example");  parser.add_argument()      .names({"-v","--verbose"})      .description("verbose level")      .required(true);  parser.add_argument("-t","--test","test",true)      .position(ArgumentParser::Argument::Position::LAST);  parser.add_argument("-d","--dtest","dtest",true).position(0);  parser.enable_help();auto err = parser.parse(argc, argv);if (err) {    std::cout << err << std::endl;return -1;  }if (parser.exists("help")) {    parser.print_help();return0;  }if (parser.exists("v")) {switch (parser.get<unsignedint>("v")) {case2:        std::cout <<"an even more verbose string" << std::endl;#ifdef __clang__        [[clang::fallthrough]];#endif// fall throughcase1:        std::cout <<"a verbose string" << std::endl;#ifdef __clang__        [[clang::fallthrough]];#endif// fall throughdefault:        std::cout <<"some verbosity" << std::endl;    }  }if (parser.exists("test")) {    std::cout << parser.get<std::string>("test") << std::endl;  }if (parser.exists("dtest")) {    std::cout << parser.get<std::string>("dtest") << std::endl;  }}

Example output:

> program "something" -v 2 "something else"an even more verbose stringa verbose stringsome verbositysomething elsesomething> program "something" -v=1 "something else"a verbose stringsome verbositysomething elsesomething> program "something" --verbose "something else"some verbositysomething elsesomething> program -hUsage: example [options...] [t] [d]Options:    -v, --verbose          verbose level           (Required)    -t, --test             test                    (Required)    -d, --dtest            dtest                   (Required)    -h, --help             Shows this page      > programRequired argument not found: -v

Usage

TODO

TODO

  • Positional argumeents
  • More error checking
  • Think of more things to do

Running Tests

Make

maketest

VSCode and CMake Tools

TODO

Visual Studio

TODO

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache-2.0-with-LLVM-Exception orGPL-3.0


[8]ページ先頭

©2009-2025 Movatter.jp