Our DMS Software Reengineering Toolkit with its C++ Front End is likely to be a good candidate for your task.
DMS is designed to be the foundation for custom program analysis and transformation tools. It provides an ecosystem of parsing machinery, tree builders, attribute grammar computations, symbol table management, flow analysis, source-level pattern matches, source-level transformation engines and development tools. One uses DMS by plugging-in parsers (and extended analyzers) for one or more languages of interest. In the case that there is no off-the-shelf parser, DMS provides strong parser generation machinery for building such a parser. (We recently built an Erlang parser [only] as a challenge task in one day).
The C++ front end was built using DMS's support. It handles virtually all (and we are completing) of C++14 in ANSI, GCC and Microsoft flavors. Using DMS, it parses C++ source text using its own full preprocessor, builds precise abstract syntax trees, and accurate symbol tables. It provides control and data flow analysis at the method level. All of this information is available to a DMS user for his custom tool.
If you want to apply source-to-source transformations to the code, DMS provides that capability directly by using the front end to support the pattern description machinery; the transformations can be conditioned on arbitrary facts drawn from the symbol tables or flow analysis machinery. Or you could just generate XML for facts that you want to export using DMS's XML package.
For example, to get a list of user types, one would visit the symbol tables (built in DMS machinery supports a front-end provided visitor) and inspect entries for types. One can do more exotic things; for instance you might navigate to an arbitrary expression tree, and ask the type of the expression.
For OP's question:
- List of user types: Yes
- List of functions: Yes
- List of methods of user types: Yes
DMS and the C++ front end have been used to build a wide variety of C++ tools (also at the website) as well as carrying out massive architectural changes to large C++ codes (see technical papers at website).