【发布时间】:2016-11-23 01:59:59
【问题描述】:
我有一个 boost::program_options 选项,它成功地将所需的输入选项解析为一个向量,但我没有看到如何给它一个默认值。示例:
base.add_options()
("vector_value",po::value<std::vector<double> >(&vecoption)->multitoken(),"description");
可以很好地将值读入 vecoptions 等
base.add_options()
("int_value",po::value<int>(&intoption)->default_value(1),"description");
也可以正常工作,但尝试为向量参数提供一个默认值,如
base.add_options()
("vector_value",po::value<std::vector<double> >(&vecoption)->default_value(std::vector<double>{0,1,2}),"description");
给出编译器错误
错误:静态断言失败:源类型既不是 std::ostream`able 也不是 std::wostream`able
如何使用 {0,1,2} 等默认值创建向量值浮点选项?
【问题讨论】:
-
不相关,但您不需要显式向
po::value提供模板参数。只需po::value(&intoption)和po::value(&vecoption)就可以了。这是一个函数模板。