gpt4 book ai didi

c++ - 用于 Boost 数组的 SWIG/Lua 类型映射

转载 作者:行者123 更新时间:2023-11-28 07:57:07 24 4
gpt4 key购买 nike

我正在尝试构建一个用于 C++ boost scoped_arrays 的 typemap(in)。我有采用 boost 数组的 C++ 函数,但我想将它们传递给 Lua 列表。

我看过 Python 的示例,但它们似乎包含太多 Python 特定的代码。

有没有人获得帮助或指向示例以帮助我入门?

最佳答案

你或许可以使用类似的东西:

%{
#include <boost/scoped_array.hpp>
%}

namespace boost {

template<class T>
class scoped_array {
public:
scoped_array();
~scoped_array();

void reset();
void swap(scoped_array& b);

%extend
{
scoped_array(unsigned n)
{
return new scoped_array<T>(new T[n]);
}
T __getitem__(unsigned int idx)
{
return (*self)[idx];
}
void __setitem__(unsigned int idx,T val)
{
(*self)[idx]=val;
}
};
};

}

作为起点。它公开了 boost::scoped_array 的重要部分并且松散地基于 SWIG 在其标准类型映射库中的 std::vector 实现。

它添加了特殊的成员函数和一个新的构造函数,同时还分配了一些存储空间。它没有向 SWIG 显示某些定义,因为我看不到它们在您的目标语言中的用途。

注意:我没有编译和检查过这个。 SWIG 对此很满意,生成的包装器看起来很正常。

关于c++ - 用于 Boost 数组的 SWIG/Lua 类型映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452652/

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