有没有办法为C ++模板化类型创建WebIDL绑定?

时间:2017-02-28 19:17:01

标签: c++ templates emscripten webidl

让我们在C ++中说我有一个带有以下签名的函数:

A<B> getTemplatedClassInstance();

其中A&amp; B是一些课程。然后我尝试生成WebIDl绑定以在emscripten构建中使用以使用来自Javascript的C ++代码。我有一个工作绑定文件,其中包含可以从JS绑定和访问的各种其他类,枚举等,但我对如何表示模板化类型(上例中的A类)感到茫然。我尝试了各种WebIDL绑定声明组合,如:

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

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

interface C {
A getTemplatedClassInstance();
};

但是使用尖括号&#39;&lt;&gt;&#39;从用于构建它的webidl_binder.py脚本(包含在emscripten sdk中)生成语法错误,如果我将声明和A的使用保留为untemplated,则绑定文件构建,但最终的emscripten编译(emcc ... )绑定cpp文件中与C ++库的绑定失败:

  

错误:使用类模板需要模板   参数

这是有道理的。奇怪的是,WebIDL文档根本没有提到模板类型。我搜索了网页,发现single reference绑定特定模板实例与&#34; Embind&#34;,但没有关于WebIDL。

0 个答案:

没有答案