"为什么在2019年仍然无法使用ctypes从Python调用C++?"

2024-10-16 20:43:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我还是很烦。毕竟,C也没有完全标准化的ABI,但它可以处理ctypes。为什么C++不能实现同样的任务?你知道吗

我发现这个blog post声称这个问题更具政治性而非技术性,但它是12年前写的。这个说法今天还准确吗?你知道吗


Tags: blogctypespostabi声称非技术性政治性
1条回答
网友
1楼 · 发布于 2024-10-16 20:43:58

事实上,你可以!(只是不支持ctypes) https://cppyy.readthedocs.io/en/latest/

<>但是,为了实现这一点,它实际上嵌入了一个C++解释器,没有太多的性能效益。你知道吗

P>一个原因,C++没有官方的ABI,因为编译器是性能集中的,它们需要跨越函数和类边界来优化。使用不同的设置,您可能会得到不同的接口,即使它具有相同的ABI。一个很好的例子是返回值优化(RVO),它改变函数签名以避免复制大型结构。你知道吗

另一个原因是C++是超级元,最现代的特征依赖于生成代码并重新编译它的模板。所以你只需要处理一个C++代码的子集。你知道吗

相关问题 更多 >