Commit Graph

83 Commits

Author SHA1 Message Date
Wenzel Jakob
b2c2c79240 improved handling of shared/smart pointers
Previously, pybind11 required classes using std::shared_ptr<> to derive
from std::enable_shared_from_this<> (or compilation failures would ensue).

Everything now also works for classes that don't do this, assuming that
some basic rules are followed (e.g. never passing "raw" pointers of
instances manged by shared pointers). The safer
std::enable_shared_from_this<> approach continues to be supported.
2016-01-17 22:31:15 +01:00
Wenzel Jakob
5f218b3f2c keep_alive call policy (analogous to Boost.Python's with_custodian_and_ward, fixes #62) 2016-01-17 22:31:15 +01:00
Wenzel Jakob
82ffd40870 type of void fixed (None -> NoneType) 2016-01-17 22:31:15 +01:00
Wenzel Jakob
27e8e1066b added new type pybind11::bytes, cleanup of various macros (fixes #49) 2016-01-17 22:31:15 +01:00
Wenzel Jakob
66c9a40213 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.
2016-01-17 22:31:15 +01:00
mk kim
b62c1203f5 Fix typographical error 2015-12-14 16:00:58 +09:00
Wenzel Jakob
76269b70b6 fix test harness for windows debug builds 2015-12-13 11:33:41 +01:00
Wenzel Jakob
60c36db1c9 generic integer type handling 2015-11-30 12:45:34 +01:00
Wenzel Jakob
6e213c9ca0 improved shared pointer support (fixes #14) 2015-11-24 23:18:32 +01:00
Wenzel Jakob
3ee91b2f0a renamed pybind11::set::insert -> add to match C api naming 2015-11-15 13:03:07 +01:00
Wenzel Jakob
333e889ef2 Improved STL support, support for std::set 2015-11-14 19:04:49 +01:00
Wenzel Jakob
fab881caf4 appveyor CI script 2015-10-18 18:01:33 +02:00
Wenzel Jakob
b1b714023a consistent macro naming throughout the project 2015-10-18 16:48:30 +02:00
Wenzel Jakob
8f4eb00690 last breaking change: be consistent about the project name 2015-10-15 18:23:56 +02:00
Wenzel Jakob
607654f7ec windows fixes 2015-10-13 23:58:10 +02:00
Wenzel Jakob
db028d685c added module::import statement 2015-10-13 23:44:25 +02:00
Wenzel Jakob
b50872acf2 A few breaking changes for consistency just before the 1.0 release
1. Renamed PYTHON_* to PYBIND_* everywhere

2. Renamed pybind::array_dtype<> to pybind::array_t<>
2015-10-13 17:46:31 +02:00
Wenzel Jakob
19208fe9a4 install a cleanup handler for nontrivial lambda closures 2015-10-13 17:46:27 +02:00
Wenzel Jakob
3b806d41eb Added configuration files for Travis CI integration 2015-10-11 18:31:46 +02:00
Wenzel Jakob
2cf192f578 fixed testcase to take enum->int conversion into account 2015-10-04 15:17:12 +02:00
Wenzel Jakob
6d6fd099db fixed testing infrastructure 2015-10-01 17:34:26 +02:00
Wenzel Jakob
be0e834b82 updated reference output 2015-10-01 17:13:38 +02:00
Wenzel Jakob
a2f6fde0dc support for overriding virtual functions 2015-10-01 17:13:35 +02:00
Wenzel Jakob
73a50a0441 Fix for radd/rsub/rmul/rdiv operator convenience wrappers 2015-09-11 17:09:47 +02:00
Wenzel Jakob
5116b02e68 python 2.7 fix 2015-09-05 02:14:39 +02:00
Wenzel Jakob
570822102c support for ancient Python versions (2.7.x) 2015-09-04 23:49:23 +02:00
Wenzel Jakob
d557e1d3ad example6 fix 2015-09-01 22:56:40 +02:00
Wenzel Jakob
7b8e032c26 added a few basic number types 2015-08-28 17:49:15 +02:00
Wenzel Jakob
281aa0e668 nicer code separation, cleanup logic, std::function type caster 2015-07-31 04:10:38 +02:00
Wenzel Jakob
a576e6a8ca keyword argument support, removed last traces of std::function<> usage 2015-07-29 23:39:11 +02:00
Wenzel Jakob
43398a8548 complex number support 2015-07-28 16:12:20 +02:00
Wenzel Jakob
d4258bafef generate more compact binaries 2015-07-28 03:10:15 +02:00
Wenzel Jakob
38bd71134a Initial commit 2015-07-09 15:27:32 +02:00