- 17 Jan, 2016 18 commits
-
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
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.
Wenzel Jakob committed -
The cpp_function class accepts a variadic argument, which was formerly processed twice -- once at registration time, and once in the dispatch lambda function. This is not only unnecessarily slow but also leads to code bloat since it adds to the object code generated for every bound function. This change removes the second pass at dispatch time. One noteworthy change of this commit is that default arguments are now constructed (and converted to Python objects) right at declaration time. Consider the following example: py::class_<MyClass>("MyClass") .def("myFunction", py::arg("arg") = SomeType(123)); In this case, the change means that pybind11 must already be set up to deal with values of the type 'SomeType', or an exception will be thrown. Another change is that the "preview" of the default argument in the function signature is generated using the __repr__ special method. If it is not available in this type, the signature may not be very helpful, i.e.: | myFunction(...) | Signature : (MyClass, arg : SomeType = <SomeType object at 0x101b7b080>) -> None One workaround (other than defining SomeType.__repr__) is to specify the human-readable preview of the default argument manually using the more cumbersome arg_t notation: py::class_<MyClass>("MyClass") .def("myFunction", py::arg_t<SomeType>("arg", SomeType(123), "SomeType(123)"));Wenzel Jakob committed -
Wenzel Jakob committed
-
Add an include in cmake.rst
Wenzel Jakob committed -
Ivan Smirnov committed
-
- 10 Jan, 2016 1 commit
-
-
Make handle and related classes const correct.
Wenzel Jakob committed
-
- 06 Jan, 2016 1 commit
-
-
Use object class to hold partially converted python objects.
Wenzel Jakob committed
-
- 02 Jan, 2016 1 commit
-
-
Using object class to hold converted object automatically deallocates object if an exception is thrown or scope is left before constructing complete Python object. Additionally added method object::release() that allows to release ownership of python object without decreasing its reference count.
Tomasz Miąsko committed
-
- 30 Dec, 2015 1 commit
-
-
Wenzel Jakob committed
-
- 28 Dec, 2015 3 commits
-
-
Clean the type name alone, not the whole message.
Wenzel Jakob committed -
Tomasz Miąsko committed
-
This gives handle classes a typical pointer semantics with respects to constness.
Tomasz Miąsko committed
-
- 27 Dec, 2015 3 commits
-
-
Add const modifier to handle::cast.
Wenzel Jakob committed -
Create an empty python tuple in pybind::tuple default constructor.
Wenzel Jakob committed -
Follow the same semantics as constructors of dict, list, and set by creating valid Python object in default constructor of a tuple class.
Tomasz Miąsko committed
-
- 26 Dec, 2015 3 commits
-
-
Tomasz Miąsko committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-
- 22 Dec, 2015 2 commits
-
-
functional.h not included in "make install"
Wenzel Jakob committed -
Erik O'Leary committed
-
- 18 Dec, 2015 1 commit
-
-
Wenzel Jakob committed
-
- 16 Dec, 2015 3 commits
-
-
Fix typo in STL docs.
Wenzel Jakob committed -
Wenzel Jakob committed
-
Wenzel Jakob committed
-
- 15 Dec, 2015 3 commits
-
-
Jared Casper committed
-
Wenzel Jakob committed
-
Wenzel Jakob committed
-