gpt4 book ai didi

c++ - boost::assign 不适用于 += 的集合

转载 作者:行者123 更新时间:2023-11-28 02:53:43 25 4
gpt4 key购买 nike

我正在尝试使用 Boost::assign 和运算符 += 来初始化我计划稍后使用的静态集。我按照此 link 中指定的步骤进行操作.代码分为三个文件

/*Assign.hpp*/
#ifndef __SAMPLE_CLASS__
#define __SAMPLE_CLASS__

#include <iostream>
#include <set>
#include <string>
#include <boost/assign/std/set.hpp>

class SampleClass
{
public:
SampleClass();
~SampleClass();

typedef std::set<int> SET_TYPE;

static const SET_TYPE my_set1;
static const SET_TYPE my_set2;
};

#endif

/*Assign.cpp*/
#include "assign.hpp"

using namespace boost::assign;

const SampleClass::SET_TYPE SampleClass::my_set1 += 1,2,3;
const SampleClass::SET_TYPE SampleClass::my_set2 += 4,5,6;

SampleClass::SampleClass()
{

}

SampleClass::~SampleClass()
{

}

/*main.cpp*/
#include "assign.hpp"

int main()
{
SampleClass sobj;
return 0;
}

当我发出以下命令时出现以下编译错误

g++ -I /usr/local/include main.cpp assign.cpp

错误片段

assign.cpp:6:50: error: invalid '+=' at end of declaration; did you mean '='?
const SampleClass::SET_TYPE SampleClass::my_set1 += 1,2,3;
^~
=
assign.cpp:6:42: error: no viable conversion from 'int' to 'const SampleClass::SET_TYPE' (aka 'const set<int>')
const SampleClass::SET_TYPE SampleClass::my_set1 += 1,2,3;
^ ~
assign.cpp:6:55: error: expected unqualified-id
const SampleClass::SET_TYPE SampleClass::my_set1 += 1,2,3;
^
assign.cpp:6:55: error: expected ';' after top level declarator
const SampleClass::SET_TYPE SampleClass::my_set1 += 1,2,3;

...

我尝试初始化静态集的方式或我在这里使用 += 运算符的方式有问题吗?

最佳答案

不能在初始化语句中使用+=

关于c++ - boost::assign 不适用于 += 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22480777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com