我使用swig来编写NodeJS的副词,并遇到了一个错误。
它是否支持std::向量*作为输出?
我的*我:
%apply std::vector<std::string> *OUTPUT {std::vector<std::string>* result};
当我狂饮时:
swig -javascript -node -c++ -DV8_VERSION=0x040599 export.i
有错误:
export.i:19: Warning 453: Can't apply (std::vector< std::string > *OUTPUT). No typemaps are defined.
我在-javascript中遇到了一个错误,但是它在swg-python.上运行良好。
有人能帮忙吗?
谢谢
发布于 2016-09-13 12:26:27
增加:
%include "std_string.i"
%include "std_vector.i"
namespace std {
%template(StringVector) vector<string>;
}在你档案的早期,似乎足以使它发挥作用。对于C++类
class MyClass {
public:
std::vector<std::string> getNames();
(...)以下代码将在Javascript端工作:
var o = ...
a = o.getNames();
console.log("size: " + a.size());
for (i = 0; i < a.size(); i++) {
console.log(a.get(i));
}这是针对SWIG 3的,它的工作方式与nn15中记录的一样。
https://stackoverflow.com/questions/34739912
复制相似问题