gpt4 book ai didi

c++ - boost::program_options 错误或功能?

转载 作者:IT老高 更新时间:2023-10-28 23:17:15 26 4
gpt4 key购买 nike

非常简单的例子:



#include <string>
#include <boost/program_options.hpp>

namespace po = boost::program_options;

int main(int argc, char* argv[])
{
po::options_description recipients("Recipient(s)");
recipients.add_options()
("csv", po::value<std::string>(), "" )
("csv_name", po::value<unsigned>(), "" )
;

po::options_description cmdline_options;
cmdline_options.add(recipients);

po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(cmdline_options).run(), vm);
po::notify(vm);

return 0;
}

还有一些测试:


>Test --csv test
in option 'csv_name': invalid option value

>Test --csv_name test
in option 'csv_name': invalid option value

>Test --csv_name 0

>Test --csv text
in option 'csv_name': invalid option value

>Test --csv 0

>Test --csv_name 0

>Test --csv_name 0 --csv text
multiple occurrences

看起来 boost::program_option 威胁参数“csv”为“csv_name”。
是功能还是错误?

最佳答案

是的,由于默认选项解析 style,这是一个“功能” .尝试使用简短的选项,例如:

recipients.add_options()
("csv,c", po::value<std::string>(), "" )
("csv_name,C", po::value<unsigned>(), "" )
;

或玩basic_command_line_parser::style(int)方法。这个我没试过,所以YMMV。

关于c++ - boost::program_options 错误或功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2589668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com