boost :: program_options类字段

Pho*_*rus 0 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;
Run Code Online (Sandbox Code Playgroud)

它给了我这些错误:

非静态const成员'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 line 20 C/C++问题

我应该怎么做po :: options_description的选项字段实例?

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

Lig*_*ica 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不支持operator=您的Boost版本中的赋值运算符(实际上自v1.33起),因为其中的const成员options_description.

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

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")
{}
Run Code Online (Sandbox Code Playgroud)

行开始:是成员的构造函数参数的位置options.