- 20 Oct, 2016 2 commits
-
-
Dean Moldovan authored
-
Dean Moldovan authored
-
- 13 Oct, 2016 1 commit
-
-
Dean Moldovan authored
-
- 27 Sep, 2016 1 commit
-
-
Trent Houliston authored
-
- 23 Sep, 2016 1 commit
-
-
Dean Moldovan authored
-
- 21 Sep, 2016 3 commits
-
-
Jason Rhinelander authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 19 Sep, 2016 2 commits
-
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 16 Sep, 2016 1 commit
-
-
Jason Rhinelander authored
The custom exception handling added in PR #273 is robust, but is overly complex for declaring the most common simple C++ -> Python exception mapping that needs only to copy `what()`. This add a simpler `py::register_exception<CppExp>(module, "PyExp");` function that greatly simplifies the common basic case of translation of a simple CppException into a simple PythonException, while not removing the more advanced capabilities of defining custom exception handlers.
-
- 13 Sep, 2016 2 commits
-
-
Trent Houliston authored
Allowed durations and non system clocks to be set from floats.
-
Trent Houliston authored
Add unit tests and documentation for the chrono cast.
-
- 11 Sep, 2016 2 commits
-
-
Jason Rhinelander authored
This adds a static local variable (in dead code unless actually needed) in the overload code that is used for storage if the overload is for some convert-by-value type (such as numeric values or std::string). This has limitations (as written up in the advanced doc), but is better than simply not being able to overload reference or pointer methods.
-
Jason Rhinelander authored
"trampoline" is doubled in the first sentence.
-
- 10 Sep, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 09 Sep, 2016 1 commit
-
-
Jason Rhinelander authored
This commit adds support for forcing alias type initialization by defining constructors with `py::init_alias<arg1, arg2>()` instead of `py::init<arg1, arg2>()`. Currently py::init<> only results in Alias initialization if the type is extended in python, or the given arguments can't be used to construct the base type, but can be used to construct the alias. py::init_alias<>, in contrast, always invokes the constructor of the alias type. It looks like this was already the intention of `py::detail::init_alias`, which was forward-declared in 86d825f3, but was apparently never finished: despite the existance of a .def method accepting it, the `detail::init_alias` class isn't actually defined anywhere. This commit completes the feature (or possibly repurposes it), allowing declaration of classes that will always initialize the trampoline which is (as I argued in #397) sometimes useful.
-
- 07 Sep, 2016 1 commit
-
-
Jason Rhinelander authored
This allows a slightly cleaner base type specification of: py::class_<Type, Base>("Type") as an alternative to py::class_<Type>("Type", py::base<Base>()) As with the other template parameters, the order relative to the holder or trampoline types doesn't matter. This also includes a compile-time assertion failure if attempting to specify more than one base class (but is easily extendible to support multiple inheritance, someday, by updating the class_selector::set_bases function to set multiple bases).
-
- 06 Sep, 2016 5 commits
-
-
Jason Rhinelander authored
The current pybind11::class_<Type, Holder, Trampoline> fixed template ordering results in a requirement to repeat the Holder with its default value (std::unique_ptr<Type>) argument, which is a little bit annoying: it needs to be specified not because we want to override the default, but rather because we need to specify the third argument. This commit removes this limitation by making the class_ template take the type name plus a parameter pack of options. It then extracts the first valid holder type and the first subclass type for holder_type and trampoline type_alias, respectively. (If unfound, both fall back to their current defaults, `std::unique_ptr<type>` and `type`, respectively). If any unmatched template arguments are provided, a static assertion fails. What this means is that you can specify or omit the arguments in any order: py::class_<A, PyA> c1(m, "A"); py::class_<B, PyB, std::shared_ptr<B>> c2(m, "B"); py::class_<C, std::shared_ptr<C>, PyB> c3(m, "C"); It also allows future class attributes (such as base types in the next commit) to be passed as class template types rather than needing to use a py::base<> wrapper. -
Dean Moldovan authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 05 Sep, 2016 2 commits
-
-
Sergey Lyskov authored
-
Wenzel Jakob authored
-
- 29 Aug, 2016 1 commit
-
-
Jason Rhinelander authored
The documentation says the string-valued python function name goes after the C++ function, but it actually goes before it.
-
- 28 Aug, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 27 Aug, 2016 1 commit
-
-
Nickolai Belakovski authored
-
- 24 Aug, 2016 1 commit
-
-
Ivan Smirnov authored
-
- 22 Aug, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 19 Aug, 2016 3 commits
-
-
Dean Moldovan authored
Test compilation instructions for Windows were changed to use the `cmake --build` command line invocation which should be easier than manually setting up using the CMake GUI and Visual Studio.
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 18 Aug, 2016 1 commit
-
-
Wenzel Jakob authored
-
- 17 Aug, 2016 1 commit
-
-
Glen Walker authored
For example keep_alive<0,1>() should work where the return value may sometimes be None. At present a "Could not allocate weak reference!" exception is thrown. Update documentation to clarify behaviour of keep_alive when nurse is None or does not support weak references.
-
- 15 Aug, 2016 1 commit
-
-
Dean Moldovan authored
The missing empty line after `.. code-block::` resulted in incorrectly parsed restructuredtext (sphinx warnings) and the code blocks were not generated in the html output. The `exclude_patterns` change just silences the orphaned file warning. [ci skip]
-
- 14 Aug, 2016 1 commit
-
-
Ivan Smirnov authored
-
- 13 Aug, 2016 3 commits
-
-
Ivan Smirnov authored
-
Ivan Smirnov authored
-
Ivan Smirnov authored
-