pybind11 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
pybind11 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
pybind11 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD
开发语言 C/C++ Python
操作系统 Linux
软件类型 开源软件
所属分类 程序开发常用工具包
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2016-04-24

软件简介

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。

核心特性

  • Functions accepting and returning custom data structures per value, reference, or pointer

  • Instance methods and static methods

  • Overloaded functions

  • Instance attributes and static attributes

  • Exceptions

  • Enumerations

  • Callbacks

  • Custom operators

  • STL data structures

  • Iterators and ranges

  • Smart pointers with reference counting like std::shared_ptr

  • Internal references with correct reference counting

  • C++ classes with virtual (and pure virtual) methods can be extended in Python

支持的编译器:

  1. Clang/LLVM (any non-ancient version with C++11 support)

  2. GCC (any non-ancient version with C++11 support)

  3. Microsoft Visual Studio 2015 or newer

  4. Intel C++ compiler v15 or newer

展开阅读全文

代码

评论

点击加入讨论🔥(2)
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
114 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部