gpt4 book ai didi

c++ - 在不给参数值的情况下使用 boost::options

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:04 25 4
gpt4 key购买 nike

我想使用 boost::program_option 运行程序而不给出值(仅标志)。像这样(这里有一些其他的标志):

./main.x -b -f test.txt -r 26

现在你必须写:

./main.x -b 1 -f test.txt -r 26

关键字是 (-b)。我不想写1.

示例:

// boost fields
boost::program_options::variables_map fMap;
boost::program_options::options_description fOptions;

// Add some options to fOptions
fOptions.add_options()
("progressBar,b", po::value<int>(), "Progress bar.");
// some other options

boost::program_options::store(po::parse_command_line(argc, argv, fOptions), fMap);

if(fMap.count("progressBar"))
{
int l_progressBar = fMap["progressBar"].as<int>();
if(l_progressBar == 1)
{
// some staff
}
}

//I would like to have something like that:
fOptions.add_options()
("progressBar,b", po::value<void>(), "Progress bar.");

if(fMap.count("progressBar"))
{
// check if flag (-b) was set and do some staff
}

最佳答案

双参数 operator() 应该可以解决这个问题:

fOptions.add_options()
("progressBar,b", "Progress bar.");

关于c++ - 在不给参数值的情况下使用 boost::options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197545/

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