我看到了一个C库。它使用了许多指针和指针指针。并且在SWIG中生成大量的SWIGTYPE_p_p
最初用于数组,用于获取指向数组和大小的指针的函数。所以我想生成简单的C ++存根类,如:
template<class T>
struct cArray {
T* data = nullptr;
size_t size = 0;
viod Clear() {
delete[] data;
}
void Generate(size_t n) {
if(data != nullptr) {
Clear();
}
size = n;
data = new T[n];
}
T** GetPtr() {
return &data;
}
operator T**() { return GetPtr(); }
size_t GetSize() {
return size;
}
T* GetElement(int index) {
return &data[index];
}
};
我希望SWIG替换/重新编写所有调用,如
extern AJ_API size_t getchildren(blaType *bla, object** children, size_t numChildren);
与
extern AJ_API size_t getchildren(blaType *bla, cArray<object> children, size_t numChildren);
所以它不会混淆并且不会生成SWIGTYPE_p_p...
使用更少的包装器?