gpt4 book ai didi

c++ - 提升程序选项选择

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:51 25 4
gpt4 key购买 nike

有没有一种简单的方法来检查选项的参数是否在一组预定义的选项中?这里的“简单”是指不定义临时类。

假设我有选项 --myoption,它必须有值 "myvalue1""myvalue2"

例如在 python 中使用 choices option in optparse 真的很容易

最佳答案

正如我刚刚意识到的,您可以定义两个相互排斥的选项,只需定义一个小函数,如 real.cpp 中所述。 .例如,您可以在 conflicting_options() 函数中指定两个相互冲突的选项:

void conflicting_options(const boost::program_options::variables_map & vm,
const std::string & opt1, const std::string & opt2)
{
if (vm.count(opt1) && !vm[opt1].defaulted() &&
vm.count(opt2) && !vm[opt2].defaulted())
{
throw std::logic_error(std::string("Conflicting options '") +
opt1 + "' and '" + opt2 + "'.");
}
}

然后调用

conflicting_options (vm, "quiet", "verbose");

boost::program_options::store() 之后

然后检查 --myoption 是否等于 myvalue1myvalue2 就变成了一个函数调用的问题。

我仍然不明白是否可以定义两个相互排斥的位置选项,但这应该是另一个问题。

关于c++ - 提升程序选项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286485/

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