Является ли этот код действительным в Джинни, и some_record
можно сгенерировать для цели с?
some_service = interface +c
{
do_some_action(): bool;
}
some_record = record
{
service: optional< some_service >;
}
Мне кажется, это просто и актуально (хотя, не пытаясь это сделать, я не уверен, что я не упустил ни одного случая с ошибками).
Обратите внимание, что дополнительные интерфейсы в Djinni довольно бессмысленны, если только вы не используете поддержку указателей, не допускающих обнуления (см. Аргументы cpp-nn- *). Это зависит от использования ненулевого шаблона в C ++, такого как пп<> Без этого интерфейсы все равно обнуляются по умолчанию. При включенном nn интерфейсы по умолчанию не обнуляются, и необязательная версия заканчивается как обнуляемая версия.
Других решений пока нет …