Есть ли способ создания привязок WebIDL для шаблонных типов C++?

Допустим, в C++ у меня есть функция со следующей подписью:

A<B> getTemplatedClassInstance();

где A & B - некоторые классы. Затем я пытаюсь сгенерировать привязки WebIDl для использования в сборке emscripten для использования кода C++ из Javascript. У меня есть рабочий файл привязок с различными другими классами, перечислениями и т. Д., Которые могут быть связаны и доступны из JS, но я не знаю, как представлять шаблонные типы (класс A, в приведенном выше примере). Я пробовал различные комбинации объявлений привязки WebIDL, как:

interface A {};
interface A<> {};
interface A<B> {};

interface C {
A<B> getTemplatedClassInstance();
};

interface C {
A getTemplatedClassInstance();
};

Но любое использование угловых скобок '<>' генерирует синтаксическую ошибку из сценария webidl_binder.py (включенного в emscripten sdk), который использовался для его создания, и если я оставлю объявление и использование A как необработанные, будет создан файл привязок, но окончательная компиляция emscripten (emcc ...) привязок с библиотекой C++ завершается неудачно в файле cpp привязок с:

ошибка: использование шаблона класса требует аргументов шаблона

что имеет смысл. Как ни странно, в документации WebIDL вообще не упоминаются типы шаблонов. Я просмотрел сеть и нашел единственную ссылку на привязку конкретных экземпляров шаблона с помощью "Embind", но ничего не касалось WebIDL.

0 ответов

Другие вопросы по тегам