此代码在Djinni中是否有效,并且可以为目标c生成some_record
?
some_service = interface +c
{
do_some_action(): bool;
}
some_record = record
{
service: optional< some_service >;
}
答案 0 :(得分:1)
对我来说,这似乎简单而有效(尽管没有尝试,我不确定我没有丢失的陷阱)。
请注意,除非您还使用非空指针支持(请参阅cpp-nn- *参数),否则可选接口在Djinni中几乎毫无意义。它们依赖于在C ++中使用诸如nn<>之类的不可为空的模板,否则,默认情况下接口都是可为空的。启用nn后,接口默认情况下不可为空,而可选的最终将成为可为空的版本。