boost :: program_options类字段

时间:2013-01-05 23:51:08

标签: c++ oop boost

我遇到了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成员'const unsigned int   提高:: 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 ++   问题使用删除的功能   “推动:: program_options :: options_description&安培;   提高:: program_options :: options_description ::运算符=(常量   boost :: program_options :: options_description&)'imageProcess.cpp / imgproc / src line   20 C / C ++问题

如何制作po :: options_description的选项字段实例?

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

1 个答案:

答案 0 :(得分:5)

阅读您的错误:

  

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

     

非静态const成员'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版本中the const member within options_description(实际上是自v1.33起)。

你必须 - 而且应该 - 使用 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的构造函数参数的位置。