- 19 Sep, 2016 6 commits
-
-
Wenzel Jakob authored
WIP: Multiple inheritance support
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
- 17 Sep, 2016 1 commit
-
-
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 1 commit
-
-
Wenzel Jakob authored
Debug build and fix
-
- 12 Sep, 2016 2 commits
-
-
Jason Rhinelander authored
Take load_type by nested type_caster template arguments instead of by full type_caster type.
-
Jason Rhinelander authored
-
- 11 Sep, 2016 10 commits
-
-
Wenzel Jakob authored
Added a test to detect invalid RTTI caching
-
Jason Rhinelander authored
The current inheritance testing isn't sufficient to detect a cache failure; the test added here breaks PR #390, which caches the run-time-determined return type the first time a function is called, then reuses that cached type even though the run-time type could be different for a future call.
-
Wenzel Jakob authored
Add a way to deal with copied value references
-
Jason Rhinelander authored
-
Jason Rhinelander authored
-
Wenzel Jakob authored
Fix Python C API calls in desctuctors triggered by error_already_set
-
Wenzel Jakob authored
parameterize iterators by return value policy (fixes #388)
-
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
Minor change that makes this example more compliant with the C++ Core Guidelines.
-
Jason Rhinelander authored
"trampoline" is doubled in the first sentence.
-
- 10 Sep, 2016 13 commits
-
-
Wenzel Jakob authored
Add array methods via C API
-
Ivan Smirnov authored
-
Ivan Smirnov authored
-
Ivan Smirnov authored
-
Dean Moldovan authored
-
Dean Moldovan authored
This clears the Python error at the error_already_set throw site, thus allowing Python calls to be made in destructors which are triggered by the exception. This is preferable to the alternative, which would be guarding every Python API call with an error_scope. This effectively flips the behavior of error_already_set. Previously, it was assumed that the error stays in Python, so handling the exception in C++ would require explicitly calling PyErr_Clear(), but nothing was needed to propagate the error to Python. With this change, handling the error in C++ does not require a PyErr_Clear() call, but propagating the error to Python requires an explicit error_already_set::restore(). The change does not break old code which explicitly calls PyErr_Clear() for cleanup, which should be the majority of user code. The need for an explicit restore() call does break old code, but this should be mostly confined to the library and not user code.
-
Wenzel Jakob authored
-
Wenzel Jakob authored
-
Wenzel Jakob authored
Implement py::init_alias<>() constructors
-
Wenzel Jakob authored
operators should return NotImplemented given unsupported input (fixes #393)
-
Wenzel Jakob authored
-
Wenzel Jakob authored
apt-get tweaks for the docker/debian builds
-
Jason Rhinelander authored
- Try to update and upgrade twice (with a brief pause between attempts) to deal with occassional spurious server failures or repository race conditions. Do the same for the main package install. - Use dist-upgrade instead of upgrade for updating the image - Add -q to the upgrade and install commands to make apt less verbose.
-
- 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.
-
- 08 Sep, 2016 5 commits
-
-
Wenzel Jakob authored
Small template simplifications
-
Jason Rhinelander authored
Switch count_t to use constexpr_sum (under non-MSVC), and then make all_of_t/any_of_t use it instead of doing the sum itself. For MSVC, count_t is still done using template recursion, but all_of_t/any_of_t can also make use of it.
-
Wenzel Jakob authored
Fix type alias initialization
-
Jason Rhinelander authored
Type alias for alias classes with members didn't work properly: space was only allocated for sizeof(type), but if we want to be able to put a type_alias instance there, we need sizeof(type_alias), but sizeof(type_alias) > sizeof(type) whenever type_alias has members.
-
Wenzel Jakob authored
-