[cfe-dev] Get "real" type name.

Stephan Bergmann via cfe-dev cfe-dev at lists.llvm.org
Mon Jan 25 08:48:54 PST 2016


On 01/25/2016 05:15 PM, Guillaume Maudoux (Layus) via cfe-dev wrote:
> I am currently fighting with clang libs to get the "real" type name of a
> template parameter.
> My current code obtains the "resolved" name of the type.
>
> For example, with a `typedef int myInt;`,
> templateArgs[0].getAsType().getAsString() returns "int" instead of "myInt".
>
>      const TemplateArgumentList& templateArgs = specDecl->getTemplateArgs();
>
>      assert(templateArgs.size() == 1);
>      assert(templateArgs[0].getKind() == TemplateArgument::Type);
>      return
> templateArgs[0].getAsType().getAsString(context->getPrintingPolicy());
>
> Is there some way to extract the type string used in the source code,
> not the type infered by clang ?

Asked something similar two years ago, 
<http://lists.llvm.org/pipermail/cfe-dev/2014-February/035161.html> 
"SubstTemplateTypeParmType and non-canonical replacement type."  But 
never found an answer.




More information about the cfe-dev mailing list