2009/9/29 Pertti Kellomäki <pertti.kellom...@tut.fi>: > I have Python bindings for a C++ library that among other > things contains classes for describing the static structure > of a microprocessor. > > My background is in Lisp, so I am used to using object > identities (references) as keys. The C++ library can > be used in this fashion, e.g. looking up a register file > by name always returns the same object reference. > However, the C++ to Python mapping does not preserve object > identity, as a new Python object is created for every query, > even if the underlying C++ reference is the same. > > Is there any easy way to preserve object identity in this > sense with Boost Python? My first thought was to use some > kind of caching scheme so that consequent queries with a > particular name return the same object, but the problem is > that objects are not only looked up by name, they can also > be returned e.g. by asking for a parent object in a containment > hierarchy.
A while ago I introduce to Py++ some kind of functionality, which integrates with CTYPES package. For example, you can expose "this" pointer to Python and use it as your id: http://language-binding.net/pyplusplus/documentation/ctypes/this_and_sizeof.html HTH -- Roman Yakovenko C++ Python language binding http://www.language-binding.net/ _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig