"Grizlyk" <[EMAIL PROTECTED]> writes:

> Well it can work, but it is not so good for templates, because
> "__cxa_demangle" makes full name of class with full name of each name
> of template parameter, that is why class name can have size about 1000
> chars, it is hard to read by human.
>
> If I want to print local name of template (_class name_ or _namespace_
> +_class name_), do I need to write simple manual parser for demangled
> name 

I believe you'll find that demangled name does not yield itself to
being parsed with a simple parser (IOW, the task is actually harder
then you think).

> or there is gnu (__cxa_???) std parser to dividing full name into
> categories: namespaces, name, template parameters?

You may want to peek into gcc-3.4.6/include/demangle.h.
In particular:

  /* Options passed to cplus_demangle (in 2nd parameter). */
  #define DMGL_NO_OPTS  0                 /* For readability... */

and 

  /* The V3 demangler works in two passes.  The first pass builds a tree
     representation of the mangled name, and the second pass turns the
     tree representation into a demangled string.  Here we define an
     interface to permit a caller to build their own tree
     representation, which they can pass to the demangler to get a
     demangled string.  This can be used to canonicalize user input into
     something which the demangler might output.  It could also be used
     by other demanglers in the future.  */

might allow you to do what you want.

Cheers,
-- 
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to