gpt4 book ai didi

c++ - 使用 boost 命令行解析器处理未知命令

转载 作者:太空狗 更新时间:2023-10-29 21:45:16 25 4
gpt4 key购买 nike

我想处理(注意,不是以任何方式使用)未知选项。

所以有这个:

http://www.boost.org/doc/libs/1_54_0/doc/html/program_options/howto.html#idp123440592

这可以用来收集和使用任何未知的选项,所以我可以这样做:

po::variables_map vm;
po::parsed_options parsed = po::command_line_parser(ac,av).options(desc).allow_unregistered().run();

{
vector<string> to_pass_further = collect_unrecognized(parsed.options, po::include_positional);
if (to_pass_further.size())
{
cout << "Unrecognized options:" << endl;
for (auto i = to_pass_further.cbegin(); i != to_pass_further.cend(); ++i)
{
cout << std::left << std::setw(2) << ' ' << *i;
return -1;
}
}
}

但由于我认为人们一直都在这样做,而且图书馆应该处理我们一直在做的所有事情,所以我是不是错过了一些更清洁的工作?

最佳答案

try
{
po::options_description desc("Allowed options");

desc.add_options()
("help,h", "produce help message")
("compression", po::value<int>()->required(), "set compression level")
;


po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
}
catch(std::exception& e)
{
std::cerr << "Error: " << e.what() << "\n";
return -1;
}
catch(...)
{
std::cerr << "Unknown error!" << "\n";
return -1;
}

关于c++ - 使用 boost 命令行解析器处理未知命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975896/

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