On Wed, 2006-09-20 at 08:42 +0200, Murray Cumming wrote: > > On Mon, 2006-09-18 at 23:08 +0200, Murray Cumming wrote: > >> On Mon, 2006-09-18 at 16:26 -0400, Paul Davis wrote: > >> > any opinions on the best way to have: > >> > > >> > Gtk::TreeModelColumn<boost::shared_ptr<T> > > >> > > >> > at the moment, g++ appears to pick the void* partial specialization of > >> > TreeModelColumn, > >> > >> Are you sure that there is void* partial specialization? What exactly > >> does it look like? > > > > well, gdb let me know that this was going on, and the stack trace showed > > we were in Value<void*> ... not really a partial specialization. > > Ah, I think the experts call that a "template instantiation". Still it's > odd, though I imagine that it might be a compiler optimisation.
as could be expected, the problem was all my fault. there was a place where i call TreeRow::get_value (column_index, a_void_ptr), which ends up in Value<void*>::get () and thus in g_value_get_pointer(). the problem wasn't with the way things were stored in the ListStore at all - rather it was that i switched from storing naked pointers and instead switched to boost::shared_ptr<T>. this means that passing a_void_ptr to TreeRow::get_value() was fundamentally the wrong thing to do. sorry as usual for any diversion and thanks for pushing me to create a little test case. _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
