1
我试图编译一个使用Boost库的Dalal and Triggs发布的程序。由于作者使用的版本(1.35
)与我正在使用的版本(1.46
)之间的差异,我在Boost方法validation_error
中出错。如何将字符串传递给Boost 1.46中的“validation_error”方法?
在old version,作者所使用的validation_error
方法有以下结构:
validation_error(const std::string & what);
而且我跑加速的version有以下几点:
validation_error(kind_t kind, const std::string & option_value = "",
const std::string & option_name = "");
在代码,作者将string
传递给旧的validation_error
方法(下面的示例)。
std::ostringstream ost;
ost << "value " << *value
<< " greater than max value " << max;
throw po::validation_error(ost.str());
我怎样才能通过这个string
到validation_error
新版本?
是什么'invalid_option_value'吗?和'“选项名称”? – Yamaneko
您正在描述验证错误,在1.35中唯一的选择是给字符串与描述,什么是错的。在1.46中,您必须以更系统的方式描述问题:您告诉kind_t枚举错误(请检查http://www.boost.org/doc/libs/1_46_0/doc/html/boost/program_options/validation_error .html),还会传递错误的值和未经验证的选项名称。 – Greg
我该如何传递'max'的值? – Yamaneko