Как установить строковый элемент списка в сгенерированном коде capnproto C ++?

У меня есть определение capnproto, как это:

struct School {
name @0 :Text;
address @1 :Address;
foundation @2 :Date;
emailAddresses @3 :List(Text);
}

Я хотел бы установить поле emailAddresses в компоновщике с кодом, похожим на этот (но это не скомпилируется):

static School::Builder random_School() {
capnp::MallocMessageBuilder msg;
School::Builder result = msg.initRoot<School>();
result.setName(rand_str(36));
result.setAddress(random_Address());
result.setFoundation(random_Date());
result.initEmailAddresses(item_count);
for (size_t i = 0; i < item_count; ++i) {
result.getEmailAddresses()[i] = rand_str(37); // rand_str returns std::string
}
return result;
}

Как правильно это сделать?

1

Решение

По словам Капнпрото документация в разделе Lists вы должны использовать builder.set (index, value).

result.getEmailAddresses().set(i, rand_str(37));

Я думаю, это должно скомпилироваться сейчас.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]