- 17 Jan, 2016 18 commits
-
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
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 authored
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 authored
-
Wenzel Jakob authored
Add an include in cmake.rst
-
Ivan Smirnov authored
-
- 10 Jan, 2016 1 commit
-
-
Wenzel Jakob authored
Make handle and related classes const correct.
-
- 06 Jan, 2016 1 commit
-
-
Wenzel Jakob authored
Use object class to hold partially converted python objects.
-
- 02 Jan, 2016 1 commit
-
-
Tomasz Miąsko authored
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.
-
- 30 Dec, 2015 1 commit
-
-
Wenzel Jakob authored
-
- 28 Dec, 2015 3 commits
-
-
Wenzel Jakob authored
Clean the type name alone, not the whole message.
-
Tomasz Miąsko authored
-
Tomasz Miąsko authored
This gives handle classes a typical pointer semantics with respects to constness.
-
- 27 Dec, 2015 3 commits
-
-
Wenzel Jakob authored
Add const modifier to handle::cast.
-
Wenzel Jakob authored
Create an empty python tuple in pybind::tuple default constructor.
-
Tomasz Miąsko authored
Follow the same semantics as constructors of dict, list, and set by creating valid Python object in default constructor of a tuple class.
-
- 26 Dec, 2015 3 commits
-
-
Tomasz Miąsko authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 22 Dec, 2015 2 commits
-
-
Wenzel Jakob authored
functional.h not included in "make install"
-
Erik O'Leary authored
-
- 18 Dec, 2015 1 commit
-
-
Wenzel Jakob authored
-
- 16 Dec, 2015 3 commits
-
-
Wenzel Jakob authored
Fix typo in STL docs.
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 15 Dec, 2015 3 commits
-
-
Jared Casper authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-