Форвардные декларации в CapnProto
В схеме CapnProto есть какой-либо способ для предварительного объявления структур, так что вы можете создать древовидную структуру следующим образом:
struct ExecuteProgram {
code @0 :Text;
}
struct SequenceProgram {
programs @0 :List(Program)
}
struct IfProgram {
condition @1 :Program;
trueBody @2 :Program;
falseBody @3 :Program;
}
struct Program {
union {
execute @0 :ExecuteProgram;
sequence @1 :SequenceProgram;
if @2 :IfProgram;
}
}
Если я пытаюсь скомпилировать это, компилятор выдает очень полезное сообщение об ошибке Parse error
, Я предполагаю, что это жалуется, потому что я использую Program
прежде чем это объявлено.
Есть ли способ обойти это?
1 ответ
Решение
Оказывается, вам не нужны предварительные декларации, я просто пропустил точку с запятой. О чем я говорил Parse error
быть ужасным сообщением об ошибке?