我正在尝试编译 Dalal and Triggs 发布的程序它使用 Boost 库。由于作者使用的版本 (1.35
) 和我正在使用的版本 (1.46
)。
在 old version ,作者使用的 validation_error
方法具有以下结构:
validation_error(const std::string & what);
还有version我正在运行的 Boost 具有以下内容:
validation_error(kind_t kind, const std::string & option_value = "",
const std::string & option_name = "");
在代码中,作者将一个字符串
传递给旧的validation_error
方法(示例如下)。
std::ostringstream ost;
ost << "value " << *value
<< " greater than max value " << max;
throw po::validation_error(ost.str());
如何将此字符串
传递给新版本的validation_error
?
最佳答案
你可以做类似的事情
throw boost::program_options::validation_error(
boost::program_options::validation_error::invalid_option_value,
"option name",
*value
);
或
throw boost::program_options::invalid_option_value(ost.str());
关于c++ - 如何从 Boost 1.46 将字符串传递给 "validation_error"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185657/