我是 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: error: declared here Builder() = delete; // 删除以阻止不正确的使用。
因此,您能否帮助我理解如何在两个不同的步骤中声明和初始化 InjectorRequestMsg::Builder injectorRequestMsg,以便我将 InjectorRequestMsg::Builder injectorRequestMsg 作为 C++ 类的数据成员和 C++ 类的所有成员函数可以访问吗?