pybind11/example
Jason Rhinelander 1b05ce5bc0 Track registered instances that share a pointer address
The pointer to the first member of a class instance is the same as the
pointer to instance itself; pybind11 has some workarounds for this to
not track registered instances that have a registered parent with the
same address.  This doesn't work everywhere, however: issue #328 is a
failure of this for a mutator operator which resolves its argument to
the parent rather than the child, as is needed in #328.

This commit resolves the issue (and restores tracking of same-address
instances) by changing registered_instances from an unordered_map to an
unordered_multimap that allows duplicate instances for the same pointer
to be recorded, then resolves these differences by checking the type of
each matched instance when looking up an instance.  (A
unordered_multimap seems cleaner for this than a unordered_map<list> or
similar because, the vast majority of the time, the instance will be
unique).
2016-08-09 17:57:59 -04:00
..
CMakeLists.txt Improve CI test coverage: eigen, numpy and C++14 2016-07-30 17:18:33 +02:00
eigen.cpp Eigen support for special matrix objects 2016-08-04 15:24:41 -04:00
eigen.py Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
eigen.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-arg-keywords-and-defaults.cpp Use generic arg names for functions without explicitly named arguments 2016-08-04 23:45:24 +02:00
example-arg-keywords-and-defaults.py Use generic arg names for functions without explicitly named arguments 2016-08-04 23:45:24 +02:00
example-arg-keywords-and-defaults.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-buffers.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-buffers.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-buffers.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-callbacks.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-callbacks.py Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-callbacks.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-constants-and-functions.cpp Fix scoped enums and add scoped enum example 2016-08-04 00:01:39 -04:00
example-constants-and-functions.py Only support ==/!= int on unscoped enums 2016-08-04 00:21:37 -04:00
example-constants-and-functions.ref Only support ==/!= int on unscoped enums 2016-08-04 00:21:37 -04:00
example-custom-exceptions.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-custom-exceptions.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-custom-exceptions.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-eval_call.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-eval.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-eval.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-eval.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-inheritance.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-inheritance.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-inheritance.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-keep-alive.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-keep-alive.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-keep-alive.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-methods-and-attributes.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-methods-and-attributes.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-methods-and-attributes.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-modules.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-modules.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-modules.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-numpy-vectorize.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-numpy-vectorize.py Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-numpy-vectorize.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-opaque-types.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-opaque-types.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-opaque-types.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-operator-overloading.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-operator-overloading.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-operator-overloading.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-pickling.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-pickling.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-pickling.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-python-types.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-python-types.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-python-types.ref Adopt PEP 484 type hints for C++ types exported to Python 2016-08-04 23:47:07 +02:00
example-sequences-and-iterators.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-sequences-and-iterators.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-sequences-and-iterators.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-smart-ptr.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-smart-ptr.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-smart-ptr.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-stl-binder-vector.cpp minor namespace change in example 2016-07-19 17:35:09 +02:00
example-stl-binder-vector.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-stl-binder-vector.ref Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example-virtual-functions.cpp Move support for return values of called Python functions 2016-08-08 13:47:37 -04:00
example-virtual-functions.py Move support for return values of called Python functions 2016-08-08 13:47:37 -04:00
example-virtual-functions.ref Move support for return values of called Python functions 2016-08-08 13:47:37 -04:00
example.cpp Rename examples files, as per #288 2016-07-18 16:43:18 -04:00
example.h last breaking change: be consistent about the project name 2015-10-15 18:23:56 +02:00
issues.cpp Track registered instances that share a pointer address 2016-08-09 17:57:59 -04:00
issues.py Track registered instances that share a pointer address 2016-08-09 17:57:59 -04:00
issues.ref Track registered instances that share a pointer address 2016-08-09 17:57:59 -04:00
object.h Initial commit 2015-07-09 15:27:32 +02:00
run_test.py Rename examples files, as per #288 2016-07-18 16:43:18 -04:00