Я новичок в CAP'N PROTO. Я создал cap'n proto структуру и часть структуры, упомянутую ниже:
**struct InjectorRequestMsg {
dataFrame @0: InjectorDataFrame;
injectorRequestID @1: UInt32;
injectorID @2: UInt32;
injectorScriptPath @3: Text;
injectorFuncName @4: Text;
injectorLogPath @5: Text;
} **
Затем я пишу конструктор в своем коде C ++ следующим образом:
::capnp::MallocMessageBuilder message;
InjectorRequestMsg::Builder injectorRequestMsg = message.initRoot<InjectorRequestMsg>();
Затем последующие распределения также работают нормально, и я могу установить все значения.
Но когда я пытаюсь объявить и инициализировать InjectorRequestMsg :: Builder, как
InjectorRequestMsg::Builder injectorRequestMsg;
injectorRequestMsg = message.initRoot<InjectorRequestMsg>();
Тогда выдает ошибку ниже:
capnproto / InjectorMessage.capnp.h: 197: 3: ошибка: объявлено здесь
Builder () = удалить; // Удалено, чтобы препятствовать неправильному использованию.
Следовательно, не могли бы вы помочь мне понять, как я могу объявить и инициализировать InjectorRequestMsg :: Builder injectorRequestMsg за два разных шага, чтобы я сделал InjectorRequestMsg :: Builder injectorRequestMsg в качестве члена-данных класса C ++ и всех функций-членов класс C ++ может получить к нему доступ?