Re: Quick Question: How can I get the GTypeInfo from a GType?



On Thu, Jan 08, 2004 at 11:33:52AM -0700, Ryan McDougall wrote:
> On Thu, 2004-01-08 at 09:04, Owen Taylor wrote:
> > On Wed, 2004-01-07 at 22:38, Ryan McDougall wrote:
> > > Specifically I want to be able to look up how large the object is, for
> > > pointer arithmetic, if only given a GType. Doesn't appear to be any
> > > obvious way.
> > 
> > Can you be more specific about what you are doing? I can't
> > think of any reason to do this that wouldn't be entirely
> > incorrect and dangerous.
> > 
> > Regards,
> > 					Owen
> >  
> 
> As I read through the source codes lots of good and bad ideas pop into
> my head. Right now I am thinking about implementing an Iterator object
> for use in a STL style container system. I think the APIs for GList,
> GArray, GTree, etc can be simplified and enriched by using some ideas
> from STL's design. Of course C has no easy way to fake C++'s Generic
> programming, but there may be yet some stuff that will transfer over.
> 
> Aside: How efficient is GValue for faking Generic Programming?
> 
> Since pointers are iterators I want to see if I can create
> implementations of the iterator models In/Out, Fore/Back, Random Access,
> etc via an interface GIterator that has methods (respective to the
> above) peek/poke, next/prev, goto, etc. If the iterator doesnt support
> some operation (lets say poke, because its a read-only Output Iterator),
> then the method is NULL. Basically the implementation for contiguous
> memory would be pointer arithmetic on void pointers using the size of
> the object. For things like linked lists, and trees, someone would have
> to make sure the method points to something like g_list_forward_iter(),
> or g_tree_depthfirst_iter(), instead of g_array_iter().
> 
> Its all pretty fluid and in my head since Im not sure how good an idea
> it is... What do you think?

FYI, there's been discussion (and an implementation) of iterators before:

http://bugzilla.gnome.org/show_bug.cgi?id=83729

-Yosh



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]