因此,在处理完最后一个问题之后,我将其归结为:
我需要将未知数量的用户定义类 ( object_c
) 添加到boost::intrusive::list
. 这些类中有const
成员。我需要做的list
就是构建它们,然后让它们持续存在,它们会自动添加自己。
有问题的代码基本上是
for (unsigned i = 0; i < json_objects.count(); ++i) {
ctor_data = read(json_objects[i]);
// construct object here
}
我试过的:
malloc
生成一个对象数组,然后将它们填充:不起作用,因为我有const
成员。static object_c *json_input = (object_c*) malloc(json_objects.size() * sizeof(object_c)); ... json_input[i](ctor_data); //error: no match for call to (object_c) (ctor_data&)
制作指针:这不起作用,函数无法正常工作,并且不会被破坏
new object_c(ctor_data);
将对象推回
std::vector
:这不起作用,当我尝试时会增加数十行的咆哮(在此处输出)vector_of_objects.push_back(object_c(ctor_data));
只是宣布该死的事情:显然不起作用,立即超出范围(dur)
object_c(ctor_data);
我确信有一种简单的方法可以做到这一点。有人有想法么?我周末大部分时间都在处理这个问题。