sha*_*haz 27 boost boost-program-options
这就是问题所在.为什么我会使用implicit_value而不是default_value,反之亦然?
谢谢!
wil*_*ell 39
default_value()是variables_map用户未指定其他值时将放入的值:
./a.out # implies width=75 if that's the default_value for width
./a.out --width=80 # default_value not used
Run Code Online (Sandbox Code Playgroud)
implicit_value() 是用户指定选项但没有相邻值时将使用的值.
./a.out --width # implies width=75 if that's the implicit_value for width
./a.out --width=80 # implicit value not used
Run Code Online (Sandbox Code Playgroud)
如果您implicit_value在命令行选项的短选项中使用then,则用户必须在选项后立即指定值:
./a.out -w80 # implicit_value not used
./a.out -w 80 # wrong: 80 parsed as extra arg if implicit_value is defined
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,差异是由允许类似的选项-X=Y(其中“Y”可能是数字)引起的。-X默认值是用户未在命令行中输入 a 时获得的值。-X隐式值是用户在命令行中输入而不指定值时获得的值。
例如,考虑 gcc,它支持从 0 到 3 的优化级别 (IIRC)。-O如果您根本不指定,则默认为-O0(即关闭优化)。如果您指定-O(没有数字),您将获得隐式值,相当于-O1. 您还可以-O1显式指定,也可以指定-O2或-O3。
| 归档时间: |
|
| 查看次数: |
5411 次 |
| 最近记录: |