Djinni 记录是否包含可选的接口字段

Could Djinni record contain optional interface field

本文关键字:接口 字段 包含可 记录 是否 Djinni      更新时间:2023-10-16

这个代码在 Djinni 中有效吗,可以为目标 c 生成some_record

some_service = interface +c 
{
do_some_action(): bool;
}
some_record = record 
{
service: optional< some_service >;
}

这对我来说似乎简单有效(尽管没有尝试,我不相信我没有遗漏一个陷阱。

请注意,可选接口在 Djinni 中毫无意义,除非您还使用不可为空的指针支持(请参阅 cpp-nn-* 参数(。 这些依赖于在 nn<> 等C++中使用不可为空的模板,否则默认情况下接口都是可为空的。 启用 nn 后,接口默认为不可空,可选最终为可为空的版本。