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 |
댓글