Mai*_*r00 3 c++ boost boost-python
我是Boost的新手,我无法理解的其中一个库是Boost.Python。谁能详细解释一下这种互操作性是如何实现的?在文档中,只有几句话涉及元编程。PS我试图看代码,但是由于我缺乏C ++知识,所以我不懂原理。提前致谢
有两种互操作方式:
1)从“ Python进程”,调用用C ++编写的函数。
Python已经有一个加载dll的系统,它们被称为“扩展模块”。Boost.Python可以编译您的源代码来生成一个。基本上,您编写了一个小的包装程序来声明可从Python调用的函数,并且“元编程”可完成诸如检测C ++函数采用和返回哪种类型的操作,以便它可以发出正确的代码以将这些函数从/转换为等效的Python类型。
2)从“ C ++进程”启动并控制Python解释器。
Python提供了一个C API来做到这一点,而Boost.Python知道如何使用它。