Согласно документации , параметры _PValue
и JudyArray
поменялись местами.Сделайте так, чтобы ваш вызов выглядел так:
JSLI( _PValue, JudyArray, (uint8_t *) String);
Также, попробуйте не компилировать его как код C ++.Пока что ваш тест не использует никаких функций C ++.Могу поспорить, что он будет скомпилирован как C-код.Похоже, что JudyArray полагается на тот факт, что C будет делать определенные виды неявных преобразований между void *
и другими типами указателей.
Если это так, я не уверен, что с этим делать.Сообщения об ошибках, которые вы получаете, говорят мне, что JSLI
- это макрос.Чтобы исправить сообщение об ошибке, которое вы видите в комментариях к этому ответу, вам нужно обратиться внутрь макроса и добавить тип-тип.
Эти виды неявных преобразований разрешены в C, поскольку в противном случае используется malloc
всегда требует некрасивых бросков.C ++ намеренно запрещает их, потому что семантика new
делает требование, чтобы результат malloc
был приведен к правильному типу, не имеет значения.
Я не думаю, что эта библиотека может эффективно использоваться в C ++причина.