mirror of
https://github.com/pybind/pybind11.git
synced 2026-03-14 20:27:47 +00:00
Much more efficient generation of function signatures, updated docs
This modification taps into some newer C++14 features (if present) to generate function signatures considerably more efficiently at compile time rather than at run time. With this change, pybind11 binaries are now *2.1 times* smaller compared to the Boost.Python baseline in the benchmark. Compilation times get a nice improvement as well. Visual Studio 2015 unfortunately doesn't implement 'constexpr' well enough yet to support this change and uses a runtime fallback.
This commit is contained in:
17
README.md
17
README.md
@@ -23,12 +23,12 @@ become an excessively large and unnecessary dependency.
|
||||
|
||||
Think of this library as a tiny self-contained version of Boost.Python with
|
||||
everything stripped away that isn't relevant for binding generation. The core
|
||||
header files only require ~2K lines of code and depend on Python (2.7 or 3.x)
|
||||
header files only require ~3K lines of code and depend on Python (2.7 or 3.x)
|
||||
and the C++ standard library. This compact implementation was possible thanks
|
||||
to some of the new C++11 language features (tuples, lambda functions and
|
||||
variadic templates). Since its creation, this library has grown beyond
|
||||
Boost.Python in many ways, leading to dramatically simpler binding code in many
|
||||
common situations.
|
||||
to some of the new C++11 language features (specifically: tuples, lambda
|
||||
functions and variadic templates). Since its creation, this library has grown
|
||||
beyond Boost.Python in many ways, leading to dramatically simpler binding code
|
||||
in many common situations.
|
||||
|
||||
Tutorial and reference documentation is provided at
|
||||
[http://pybind11.readthedocs.org/en/latest](http://pybind11.readthedocs.org/en/latest).
|
||||
@@ -71,6 +71,13 @@ In addition to the core functionality, pybind11 provides some extra goodies:
|
||||
- Everything is contained in just a few header files; there is no need to link
|
||||
against any additional libraries.
|
||||
|
||||
- Binaries are generally smaller by a factor of 2 or more compared to
|
||||
equivalent bindings generated by Boost.Python.
|
||||
|
||||
- When supported by the compiler, two new C++14 features (relaxed constexpr,
|
||||
return value deduction) such as are used to do additional work at compile
|
||||
time, leading to smaller binaries.
|
||||
|
||||
### License
|
||||
|
||||
pybind11 is provided under a BSD-style license that can be found in the
|
||||
|
||||
Reference in New Issue
Block a user