c++ - 如何从 Boost 1.46 将字符串传递给 "validation_error"方法?

标签 c++ boost

我正在尝试编译 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/

相关文章:

c++ - 在 3D 空间中搜索靠近 vector 的点

c++ - 有两个不同版本的箭头运算符?

c++ - 将编译器错误插入到共享内存中的 map 中

c++ - 在STL算法中调用多个函数

c++ - 引用的条件分配

c++ - 使用私有(private)变量获取正确值时遇到问题

c++ - 嵌入式 Linux 中的 C 与 C++

c++ - 使用 Boost Spirit 为类似矩阵的输入编写解析器

c++ - boost 文件映射性能

c++ - wstring 的 isupper 和 islower