I have a function[1] that extracts properties from a type, using pygccxml.declarations.type_traits

For a simple type, it does nothing, and the type name is unchanged.  All is well here:

***** type traits for '::uint64_t'
*** > return  ('uint64_t', False, 0, False)

In the following case, I call type_traits.remove_const and type_traits.remove_reference, and the resulting type then appears different:

***** type traits for '::uint64_t const &'
*** > return  ('long unsigned int', True, 0, True)

Yes, I know that in this system "long unsigned int" is the same as uint64_t.  But I would rather work with uint64_t, due to LLP/LP platform differences.

Any hints on how to work around this?

[1] http://bazaar.launchpad.net/~gjc/pybindgen/trunk/annotate/gjc%40gnome.org-20080629154751-9lgrks1m411ssn8f?file_id=gccxmlparser.py-20071117182614-93x4j7mcuw0eq1q6-1#L135
Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert