Может быть, что-то не так в определении структуры в анклаве - PullRequest
0 голосов
/ 24 апреля 2020
##  types.h  ##

struct Node;

typedef union {
    char *value;
    Node *next;
} child_t;

struct Node
{
    int type;
    int *key;
    child_t *child;

    Node()
    {
            key = new int[FAN_OUT];
            child = new child_t[FAN_OUT];
    }
};

##   Enclave.edl  ##

include "types.h"

trusted {
    public void ecall_printf_node([in] struct Node *root);
};

Однако сообщается о следующей ошибке:

Include / types.hpp: 23: 9: ошибка: неизвестное имя типа 'Узел': Узел * следующий;

Включить /types.hpp:33:9: ошибка: ожидаемый список спецификаторов-спецификаторов перед «Узлом»: Node () {Вот конструктор}

Три вопроса: 1) Поддерживает ли в анклаве предварительное объявление класса или структуры? такой как "struct Node", как указано выше;

2) Должен ли структура иметь конструктор в анклаве? такой как функция "Node ()", как указано выше;

3), если нет, как мне достичь выше?

...