C++的任何命令行解析库是否允许具有N个参数的选项

Does any of the command line parsing libraries for C++ allow options with N arguments

本文关键字:许具 参数 选项 是否 命令行 任何 C++      更新时间:2023-10-16

我正在将python脚本移植到C++,但还没有找到一种方法来表达参数,例如:

--metadata KEY VALUE

在我看到的C++参数解析库中:

  • 增强::程序选项
  • TCLAP
  • Gflags

也许它作为一种可能性存在于其中之一,也许我必须探索其他人,也许我只能手工完成。

你知道C++命令行选项解析库支持多个选项参数吗?

标准shell实用程序语法准则不鼓励使用带多个参数的命令行标志。所以我怀疑你是否会找到一个处理它的标准库。接受格式选项更常见,例如:

--metadata KEY=VALUE

你可能会找到标准库来帮助你使用这种格式(当然,strtokstd::string::find也很容易使用)。

如果你真的坚持多选参数的设计选择,如果你告诉它不要排列参数(把+作为optstring的第一个字符),你可以用getopt_long来做;您所需要做的就是在读取参数时手动递增optind。(也就是说:第一个参数将在optarg中,下一个参数在argv[optind++]中,依此类推。)在C++库中可能也有等效的低级破解。