- 27 Oct, 2016 2 commits
-
-
Wenzel Jakob committed
-
The current integer caster was unnecessarily strict and rejected various kinds of NumPy integer types when calling C++ functions expecting normal integers. This relaxes the current behavior.
Wenzel Jakob committed
-
- 25 Oct, 2016 2 commits
-
-
Prevent overwriting previous declarations
Wenzel Jakob committed -
Currently pybind11 doesn't check when you define a new object (e.g. a class, function, or exception) that overwrites an existing one. If the thing being overwritten is a class, this leads to a segfault (because pybind still thinks the type is defined, even though Python no longer has the type). In other cases this is harmless (e.g. replacing a function with an exception), but even in that case it's most likely a bug. This code doesn't prevent you from actively doing something harmful, like deliberately overwriting a previous definition, but detects overwriting with a run-time error if it occurs in the standard class/function/exception/def registration interfaces. All of the additions are in non-template code; the result is actually a tiny decrease in .so size compared to master without the new test code (977304 to 977272 bytes), and about 4K higher with the new tests.
Jason Rhinelander committed
-
- 24 Oct, 2016 3 commits
-
-
NumPy scalars to ctypes conversion support
Wenzel Jakob committed -
This reduces direct access to internals.registered_types_cpp to just a few places.
Ivan Smirnov committed -
Wenzel Jakob committed
-
- 23 Oct, 2016 1 commit
-
-
This avoid a hashmap lookup since the pointer to the list of direct converters is now cached in the typeinfo.
Ivan Smirnov committed
-
- 22 Oct, 2016 8 commits
-
-
Wenzel Jakob committed
-
Bugfix: bad delete if no copy ctor
Wenzel Jakob committed -
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
* Remove obsolete example reference * Make example fully-working (except for #includes) Fixes #456.
Jason Rhinelander committed -
Fix def_property and related functions
Wenzel Jakob committed
-
- 21 Oct, 2016 1 commit
-
-
Making `cppfunction` explicit broke `def_property` and friends. The added tests would not compile without an implicit `cppfunction`.
Dean Moldovan committed
-
- 20 Oct, 2016 17 commits
-
-
Without the previous commit, this test generates a core dump.
Ben North committed -
type_caster_generic::cast(): The values of wrapper->value wrapper->owned are incorrect in the case that a return value policy of 'copy' is requested but there is no copy-constructor. (Similarly 'move'.) In particular, if the source object is a static instance, the destructor of the 'object' 'inst' leads to class_::dealloc() which incorrectly attempts to 'delete' the static instance. This commit re-arranges the code to be clearer as to what the values of 'value' and 'owned' should be in the various cases. Behaviour is different to previous code only in two situations: policy = copy but no copy-ctor: Old code leaves 'value = src, owned = true', which leads to trouble. New code leaves 'value = nullptr, owned = false', which is correct. policy = move but no move- or copy-ctor: old code leaves 'value = src, owned = true', which leads to trouble. New code leaves 'value = nullptr, owned = false', which is correct.Ben North committed -
Support std::shared_ptr holder type out of the box
Wenzel Jakob committed -
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Reorganize documentation
Wenzel Jakob committed -
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
Ivan Smirnov committed
-
With this there is no more need for manual user declarations like `PYBIND11_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>)`. Existing ones will still compile without error -- they will just be ignored silently. Resolves #446.
Dean Moldovan committed -
Dean Moldovan committed
-
Dean Moldovan committed
-
Auto-implement format/numpy descriptors for enum types
Wenzel Jakob committed -
Ivan Smirnov committed
-
Ivan Smirnov committed
-
- 17 Oct, 2016 2 commits
-
-
Make operator bool() explicit
Wenzel Jakob committed -
This prevents unwanted conversions to bool or int such as: ``` py::object my_object; std::cout << my_object << std::endl; // compiles and prints 0 or 1 int n = my_object; // compiles and is nonsense ``` With `explicit operator bool()` the above cases become compiler errors.
Dean Moldovan committed
-
- 16 Oct, 2016 2 commits
-
-
Disable most implicit conversion constructors
Wenzel Jakob committed -
We have various classes that have non-explicit constructors that accept a single argument, which is implicitly making them implicitly convertible from the argument. In a few cases, this is desirable (e.g. implicit conversion of std::string to py::str, or conversion of double to py::float_); in many others, however, it is unintended (e.g. implicit conversion of size_t to some pre-declared py::array_t<T> type). This disables most of the unwanted implicit conversions by marking them `explicit`, and comments the ones that are deliberately left implicit.
Jason Rhinelander committed
-
- 15 Oct, 2016 2 commits
-
-
Accept any sequence type as std::vector (or std::list)
Wenzel Jakob committed -
Accept any sequence type as std::vector
Pim Schellart committed
-