0

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

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

有没有人得到帮助或指向一个例子来让我开始?

4

1 回答 1

1

您可能可以使用类似的东西:

%{
#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;
        }
    };
};

}

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

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

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

于 2012-09-17T10:39:55.217 回答