pybind11 C++ 的 Python 绑定开源项目

我要开发同款
匿名用户2016年04月24日
37阅读
开发技术C/C++
所属分类程序开发、常用工具包
授权协议BSD

作品详情

pybind11可实现C++11和Python之间的无缝操作。

pybind11是一个轻量级的只包含一组头文件的C++库,可以在Python中使用C++类型。主要用于创建已有C++代码的Python封装版本。其目的和语法类似于Boost.Python库。为什么要创建这个项目的原因就是因为Boost。作者认为Boost很大很复杂。而目前的C++11兼容的编译器使用已经非常广泛,所以希望开发一个更轻量级更具备兼容性的项目。

除去注释之外,该项目的核心头文件只有2500行左右代码,依赖于Python(2.7或者3.x)和标准C++库。这么精简的实现有赖于新的C++11语言特性。特别是元组、Lambda函数以及可变模板。自从项目创建以来,其增长已经超过了Boost.Python。

核心特性

Functionsacceptingandreturningcustomdatastructurespervalue,reference,orpointer

Instancemethodsandstaticmethods

Overloadedfunctions

Instanceattributesandstaticattributes

Exceptions

Enumerations

Callbacks

Customoperators

STLdatastructures

Iteratorsandranges

Smartpointerswithreferencecountinglikestd::shared_ptr

Internalreferenceswithcorrectreferencecounting

C++classeswithvirtual(andpurevirtual)methodscanbeextendedinPython

支持的编译器:

Clang/LLVM(anynon-ancientversionwithC++11support)

GCC(anynon-ancientversionwithC++11support)

MicrosoftVisualStudio2015ornewer

IntelC++compilerv15ornewer

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论