[gnu.g++.lib.bug] EntList

lindek@alberta.uucp (07/24/89)

Hi, there. I was trying to used genclass to generate a Ent list, where
Ent is defined by "typedef void* Ent;". However, EntList has the two
constructors EntList(Ent head) and EntList(Pix p). Since Pix is also defined
to be (void *), g++ complained the conflict between these two constructors.
Does anyone have any suggestions about what I should do? What's the use of
EntList(Pix p)?

Thanks in advance.

Dekang

-------------------------------------------------------------------------
Dekang Lin                                  PHONE:                   
                    	  		      OFFICE: 1-403-492-2821
  Department of Computing Science             HOME:   1-403-425-0219

dl@G.OSWEGO.EDU (Doug Lea) (07/29/89)

This is a real problem. A Pix (pseudoindex) is used to index/traverse
containers in an array- or list-like fashion. See libg++.texinfo. For
efficiency reasons it is currently defined via a typedef (to void*)
instead of as a class. It is likely that someday, g++ will provide
enough optimization features that defining Pix as a class will incur no
such penalty (this will also make them a bit safer to use). Until then
I suppose the only workaround is for you to comment out the
EntList(Pix) constructor in your version, since you probably can live
without it (It is useful only in creating new Lists headed by some
traversal pointer Pix).

-Doug