【问题标题】:boost::program_options class fieldboost::program_options 类字段
【发布时间】:2012-12-20 02:33:36
【问题描述】:

我对 boost::program_options 有疑问

我有课

namespace po = boost::program_options;
class imageProcess{
private:
    po::options_description options;
public:
    imageProcess(int argc,char** argv){
        po::options_description desc("Allowed options");
        this->options = desc;

它给了我这些错误:

非静态常量成员‘const unsigned int boost::program_options::options_description::m_min_description_length', 不能使用默认赋值运算符 imgproc 第 163 行,外部 地点: /usr/include/boost/program_options/options_description.hpp C/C++ 问题非静态 const 成员 'const unsigned int boost::program_options::options_description::m_line_length',不能使用 默认赋值运算符 imgproc 第 163 行,外部位置: /usr/include/boost/program_options/options_description.hpp C/C++ 删除函数的问题使用 'boost::program_options::options_description& boost::program_options::options_description::operator=(const boost::program_options::options_description&)’ imageProcess.cpp /imgproc/src 行 20 C/C++问题

我应该怎么做才能创建 po::options_description 的 options 字段实例?

编辑: 我知道选项字段已经是一个实例,但是有没有办法在定义此字段后设置描述“允许的选项”(po::options_description options("allowed options"); 也不起作用)?以及我应该如何将先前创建的对象实例存储到类字段中?

【问题讨论】:

    标签: c++ oop boost


    【解决方案1】:

    阅读您的错误:

    非静态常量成员‘const unsigned int boost::program_options::options_description::m_min_description_length’,不能使用默认赋值运算符

    非静态常量成员'const unsigned int boost::program_options::options_description::m_line_length',不能使用默认赋值运算符

    使用已删除的函数‘boost::program_options::options_description& boost::program_options::options_description::operator=(const boost::program_options::options_description&)

    它们表明 boost::program_options::options_description does not support the assignment operator operator= 在您的 Boost 版本中(实际上是从 v1.33 开始),由于 the const member within options_description

    你必须——而且无论如何应该——使用ctor-initializer初始化你的options_description实例:

    namespace po = boost::program_options;
    class imageProcess{
    private:
        po::options_description options;
    public:
        imageProcess(int argc, char** argv);
    };
    
    imageProcess::imageProcess(int argc, char** argv)
       : options("Allowed options")
    {}
    

    : 开头的行是成员options 的构造函数参数所在的位置。

    【讨论】:

      猜你喜欢
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      相关资源
      最近更新 更多