我是一个新手来升级,其中一个我无法理解的库是Boost.Python。任何人都可以详细解释我这个互操作性是如何实现的?在文档中只有几个关于元编程的文字。 附:我试着看代码,但由于我缺乏C ++知识,我不理解原则。 提前致谢
答案 0 :(得分:4)
有两种互操作方式:
1)从“Python进程”,调用用C ++编写的函数。
Python已经有一个加载dll的系统,它们被称为“扩展模块”。 Boost.Python可以编译你的源代码来生成一个。基本上你编写一个小包装器来声明一个可以从Python调用的函数,并且“元编程”就可以检测C ++函数采用和返回的类型,这样它就可以发出正确的代码来将这些函数从/转换为等效的Python类型。
2)从“C ++进程”中,启动并控制Python解释器。
Python提供了一个C API来实现这一点,Boost.Python知道如何使用它。