On 9/7/06, Alex Mohr <amohr@pixar.com> wrote:
The non-obvious part of this for me is:
- Does this mean that I now need to explicitly wrap (expose using bp::class_ ) all the ref_ptr<> types?
I haven't had to do that thus far because it was handled internally somehow because I used it has the held_type for all my classes. If I expose them manually do I run the risk of breaking any of the held_type functionality?
I'm not sure what you mean... If ref_ptr<T> is the held type for T, then just provide __eq__ in terms of ref_ptr<T>...
template <class T> static bool ref_ptr_eq(ref_ptr<T> const &self, ref_ptr<T> const &other) { return self == other; }
class_<T, ... ref_ptr<T> ... >(...) .def("__eq__", ref_ptr_eq<T>) ;
Am I misunderstanding your situation?
Ahhh.... No I see what you are meaning. So I need the __eq__ op on the class itself. Ok. That makes more sense. I thought I may have to wrap the ref_ptr<T> as a class a and put the __eq__ op on it. Something like: class_<ref_ptr<T>, ..>(..) .def("__eq__", ref_ptr_eq<T>) ; Thanks for the feedback. I will try your method out and reply to the list with the results so other people following along can see what ended up working. Thanks again, Allen
Alex _______________________________________________ C++-sig mailing list C++-sig@python.org http://mail.python.org/mailman/listinfo/c++-sig