这就是问题。为什么我在default_value上使用隐式值,反之亦然?
谢谢!
variables_map
variables_map
是用户指定选项但没有相邻值时将使用的值。
./a.out # implies width=75 if that's the default_value for width
./a.out --width=80 # default_value not used
如果使用implicit_value()
,则在命令行选项的简短选项中,用户必须在选项之后立即指定值:
implicit_value()
-X=Y
,则默认为-X
(即优化功能已关闭)。如果指定-X
(不带数字),则将获得隐式值,该值等于-O
。您也可以显式指定-O0
,也可以指定-O
或-O1
。-O2
如果您不输入优化或听音,
./ myApp.exe
输出:
-O3
如果输入不带参数的选项example,则会丢失参数。如果输入不带参数的 desc.add_options()
("help", "produce help message")
("optimization", po::value<int>(&opt)->default_value(10),
"optimization level")
("verbose,v", po::value<int>()->implicit_value(1),
"enable verbosity (optionally specify level)")
("listen,l", po::value<int>(&portnum)->implicit_value(1001)
->default_value(0,"no"),
"listen on a port.")
("include-path,I", po::value< vector<string> >(),
"include path")
("input-file", po::value< vector<string> >(), "input file")
;
,它将给出一个隐式值1001。