You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[pybind11.readthedocs.org][]. A PDF version of the manual is available
36
+
[here][docs-pdf].
39
37
40
38
## Core features
41
-
pybind11 can map the following core C++ features to Python
39
+
pybind11 can map the following core C++ features to Python:
42
40
43
41
- Functions accepting and returning custom data structures per value, reference, or pointer
44
42
- Instance methods and static methods
@@ -51,15 +49,15 @@ pybind11 can map the following core C++ features to Python
51
49
- Custom operators
52
50
- Single and multiple inheritance
53
51
- STL data structures
54
-
- Smart pointers with reference counting like ``std::shared_ptr``
52
+
- Smart pointers with reference counting like `std::shared_ptr`
55
53
- Internal references with correct reference counting
56
54
- C++ classes with virtual (and pure virtual) methods can be extended in Python
57
55
58
56
## Goodies
59
57
In addition to the core functionality, pybind11 provides some extra goodies:
60
58
61
-
- Python 2.7, 3.x, and PyPy (PyPy2.7 >= 5.7) are supported with an
62
-
implementation-agnostic interface.
59
+
- Python 2.7, 3.5+, and PyPy 7.3 are supported with an implementation-agnostic
60
+
interface.
63
61
64
62
- It is possible to bind C++11 lambda functions with captured variables. The
65
63
lambda capture data is stored inside the resulting Python function object.
@@ -83,10 +81,10 @@ In addition to the core functionality, pybind11 provides some extra goodies:
83
81
- Binaries are generally smaller by a factor of at least 2 compared to
84
82
equivalent bindings generated by Boost.Python. A recent pybind11 conversion
85
83
of PyRosetta, an enormous Boost.Python binding project,
86
-
[reported](http://graylab.jhu.edu/RosettaCon2016/PyRosetta-4.pdf) a binary
87
-
size reduction of **5.4x** and compile time reduction by **5.8x**.
84
+
[reported][pyrosetta-report] a binary size reduction of **5.4x** and compile
85
+
time reduction by **5.8x**.
88
86
89
-
- Function signatures are precomputed at compile time (using ``constexpr``),
87
+
- Function signatures are precomputed at compile time (using `constexpr`),
90
88
leading to smaller binaries.
91
89
92
90
- With little extra effort, C++ types can be pickled and unpickled similar to
@@ -97,7 +95,8 @@ In addition to the core functionality, pybind11 provides some extra goodies:
97
95
1. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer)
98
96
2. GCC 4.8 or newer
99
97
3. Microsoft Visual Studio 2015 Update 3 or newer
100
-
4. Intel C++ compiler 17 or newer (16 with pybind11 v2.0 and 15 with pybind11 v2.0 and a [workaround](https://github.com/pybind/pybind11/issues/276))
98
+
4. Intel C++ compiler 17 or newer (16 with pybind11 v2.0 and 15 with pybind11
99
+
v2.0 and a [workaround][intel-15-workaround])
101
100
5. Cygwin/GCC (tested on 2.5.1)
102
101
103
102
## About
@@ -122,8 +121,23 @@ Henry Schreiner,
122
121
Ivan Smirnov, and
123
122
Patrick Stewart.
124
123
124
+
### Contributing
125
+
126
+
See the [contributing guide][] for information on building and contributing to
127
+
pybind11.
128
+
129
+
125
130
### License
126
131
127
132
pybind11 is provided under a BSD-style license that can be found in the
128
-
``LICENSE`` file. By using, distributing, or contributing to this project,
133
+
[`LICENSE`][] file. By using, distributing, or contributing to this project,
129
134
you agree to the terms and conditions of this license.
0 commit comments