C++ 11与Python之间无缝的可操作性
pybind11的Python项目详细描述
pybind11是一个轻量级的头文件库 在Python中公开C++类型,反之亦然,主要是创建Python绑定。 现有C++代码。它的目标和语法与 david abrahams的boost.python:最小化传统的样板代码 使用编译时推断类型信息的扩展模块 反省。
boost.python的主要问题——以及创建这样一个类似的 项目是推动。boost是一个庞大而复杂的实用程序套件 与几乎所有C++编译器一起工作的库。这个 兼容性有其代价:神秘的模板技巧和解决方法 必须支持最古老和最有缺陷的编译器样本。既然 C++ 11兼容编译器广泛适用,这台重型机械有 成为一个过大和不必要的依赖。
把这个库看作boost.python的一个小型自包含版本 所有与绑定生成无关的内容都被删除了。没有 注释,核心头文件只需要~4k行代码,并且依赖于 Python(2.7或3 .x,或pypy2.7&gt=5.7)和C++标准库。这个 由于一些新的C++ 11语言,紧凑的实现是可能的。 特性(特别是:元组、lambda函数和变量模板)。自从 它的创建使这个库在很多方面都超越了boost.python,领先于 在许多常见情况下显著简化绑定代码。