gpt4 book ai didi

c++ - [swig-JavaScript] 是否支持 std::vector* 作为输出?

转载 作者:行者123 更新时间:2023-11-30 03:45:32 25 4
gpt4 key购买 nike

我用swig写NodeJS的addon遇到了错误。
它支持 std::vector* 作为输出吗?
我的 *.i:
%apply std::vector<std::string> *OUTPUT {std::vector<std::string>* result};
当我运行 swig 时:
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.

我在 swig-javascript 中遇到错误,但它在 swig-python 中运行良好。

有人可以帮忙吗?
谢谢

最佳答案

添加:

%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,其工作方式如 http://www.swig.org/Doc1.3/Library.html#Library_nn15 中所述

关于c++ - [swig-JavaScript] 是否支持 std::vector<std::string>* 作为输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34739912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com