gpt4 book ai didi

python - 我可以将 c++ 模板类导出到 C,然后再导出到带有 ctypes 的 python 吗?

转载 作者:行者123 更新时间:2023-11-28 06:51:15 25 4
gpt4 key购买 nike

对于非模板类,我会写类似 that 的东西

但是如果我的类是模板类,我不知道该怎么办。

我试过类似的东西,但没有用。

extern "C" {
Demodulator<double>* Foo_new_double(){ return new Demodulator<double>(); }
Demodulator<float>* Foo_new_float(){ return new Demodulator<float>(); }
void demodulateDoubleMatrix(Demodulator<double>* demodulator, double * input, int rows, int columns){ demodulator->demodulateMatrixPy(input, rows, columns) }
}

最佳答案

注意:您的问题与代码部分矛盾,所以我暂时忽略代码。

C++ 模板是一种精心设计的宏机制,可在编译时 解析。换句话说,二进制文件仅包含来自模板实例化的代码(这是您将参数(通常是类型)应用于模板时获得的代码),而这些都是您可以从二进制文件导出到其他语言的代码。导出它们就像导出任何常规类型,例如参见 std::string

由于模板本身无法在编译后继续存在,因此您无法将它们从二进制文件导出到 C、Python 甚至 C++!对于后者,您可以自己提供模板,但这不会将它们包含在二进制文件中。

两个假设:

  • 通过二进制文件导出/导入作品。当然,您可以编写解析 C++ 的导入。
  • C++ 指定(或指定?)导出模板,但据我所知,这并没有真正在野外实现,所以我没有使用该选项。

关于python - 我可以将 c++ 模板类导出到 C,然后再导出到带有 ctypes 的 python 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916218/

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