首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有默认值的Boost程序选项

具有默认值的Boost程序选项
EN

Stack Overflow用户
提问于 2014-03-30 12:02:36
回答 1查看 1.4K关注 0票数 0

我在c++中有一个使用boost program_options的控制台应用程序。

我有一个名为-列表时区的参数

现在我想像那样用它

任一

代码语言:javascript
复制
myapp --list-timezones

给了我所有可用的时区

代码语言:javascript
复制
myapp --list-timezones AT

这让我知道去奥地利的时区

我的选择是:

代码语言:javascript
复制
options.add_options()
    ("date-format,d", po::value<string>()->value_name("<Formatstring>")->default_value("%Y-%m-%d %H:%M:%S","\"%Y-%m-%d %H:%M:%S\""),"Format-string for input or output\ne.g. \"%Y-%m-%d %H:%M:%S\"")
    ("input-format,i", po::value<string>()->value_name("<Representation>")->default_value("HEX"),"HEX    hex value\nBIN    binary value\nDEC    decimal value")
    ("output-format,o", po::value<string>()->value_name("<Representation>")->default_value("HEX"),"HEX    hex Value\nBIN    binary value\nDEC    decimal value")
    ("to,t", po::value<string>()->value_name("<Date-Format>"),"CHROME\nMAC\nUNIX\nUNIX_ms\nWin64\nWinCookie\nWinOle\nWinFiletime\nDOS\nHFS\nHFS+")
    ("from,f", po::value<string>()->value_name("<Date-Format>")/*->default_value("UNKNOWN")*/,"CHROME\nMAC\nUNIX\nUNIX_ms\nWin64\nWinCookie\nWinOle\nWinFiletime\nDOS\nHFS\nHFS+\nUNKNOWN")
    ("timezone,z", po::value<string>()->value_name("<Time-Zone>")->default_value("UTC"),"e.g \"Europe/Vienna\"\n execute '--list-timezones ALL' to see all available timezones")
    ("list-timezones,l", po::value<string>()->value_name("<ISO-3166 Country Code>"), "List all available timezones\nyou can filter with ISO3166 country code(e.g AT for Austria)")
    ("value,v", po::value<string>()->value_name("<value>"), "Input Value")
    ("swap-bytes,s", "Swap bytes of result")
    ;

我有什么办法处理这事吗?

如果我使用没有参数的--列表时区,我会得到一个异常。

谢谢弗洛里安

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-30 12:08:55

你想要这个

代码语言:javascript
复制
("list-timezones,l", po::value<string>()->implicit_value("")->value_name(...

那么你就可以提出论点了。如果没有给出字符串值,则字符串值将为空,在您的情况下,这似乎是一个合理的前哨值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22743757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档