GitHub - junstar92/argparse: C++ (python-argparse-like) Argument Parser
C++ (python-argparse-like) Argument Parser. Contribute to junstar92/argparse development by creating an account on GitHub.
github.com
C++에서 파이썬의 argparse와 유사하게 커맨드라인 인자를 읽을 수 있는 파서를 구현해봤습니다. 파이썬의 argparse와 유사하게 사용할 수 있습니다. 아직 업데이트 중이어서 약간 바뀔 가능성은 있습니다.
기본적은 사용법은 아래와 같습니다.
#include <iostream> #include <argparse/argparse.h> int main(int argc, char** argv) { auto parser = argparse::ArgumentParser(); parser.add_argument("square") .set_help("display a square of a given number"); parser.add_argument("-v", "--verbose", argparse::actions::StoreTrueAction()) .set_help("increase output verbosity"); auto args = parser.parse_args(argc, argv); int square = args.get<int>("square"); if (args.get<bool>("verbose")) { std::cout << "the square of " << square << " equals " << square * square << std::endl; } else { std::cout << square * square << std::endl; } return 0; }
이렇게 작성한 코드를 컴파일하면 아래와 같은 방식으로 사용할 수 있습니다.
$ ./program 4 16 $ ./program 4 --verbose the square of 4 equals 16 $ ./program --verbose 4 the square of 4 equals 16 $ ./program -h usage: program [-h] [-v] square positional arguments: square display a square of a given number options: -h, --help show this help message and exit -v, --verbose increase output verbosity
부족하지만 사용해보시고 피드백주시면 감사하겠습니다.
'프로그래밍 > C & C++' 카테고리의 다른 글
[C++] Tuple 구현 (0) | 2024.01.01 |
---|---|
[C++] 템플릿과 상속 (EBCO, CRTP) (0) | 2023.12.29 |
[C++] Typelists (0) | 2023.12.23 |
[C++] 메타프로그래밍 (0) | 2023.12.16 |
[C++] Type Erasure (4) | 2023.12.15 |
댓글