<div dir="ltr">The C++ name mangler already knows how to compute a unique string per class.  If you want a pretty string, probably the best way to get that is to mangle a string and then demangle it.</div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Nov 6, 2013 at 3:34 AM, Jesper Eskilson <span dir="ltr"><<a href="mailto:jesper.eskilson@iar.com" target="_blank">jesper.eskilson@iar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Hi,<br>
<br>
I'm trying to find a way to construct a string which uniquely identify a class such that different template instantiations yields a different string. Say thay I have a class template A:<br>
<br>
template<class T> class A;<br>
A *a = new A<int>();<br>
<br>
then if I start from the CXXConstructExpr:<br>
<br>
ctorExpr->getConstructor()-><u></u>getQualifiedNameAsString()<br>
<br>
it will get be "A<int>::A".<br>
<br>
But say that I have another class B which inherits from A:<br>
<br>
class B : public A<int> {<br>
};<br>
<br>
B *b = new B;<br>
<br>
How do I find out how A is templatized? Ideally I would like to get out a string such as "A<int>", but the closest I get is to do<br>
<br>
CXXBaseSpecifier base = ;<br>
base.getType()-><u></u>getAsCXXRecordDecl()-><u></u>getQualifiedNameAsString();<br>
<br>
but this will only give me "A". How do I find out the template parameters used when instantiating A?<br>
<br>
-- <br>
*Jesper Eskilson* /Development Engineer/<br>
IAR Systems AB<br>
Box 23051, Strandbodgatan 1<br>
SE-750 23 Uppsala, SWEDEN<br>
E-mail: <a href="mailto:jesper.eskilson@iar.com" target="_blank">jesper.eskilson@iar.com</a> <mailto:<a href="mailto:jesper.eskilson@iar.com" target="_blank">jesper.eskilson@iar.<u></u>com</a>><br>
Website: <a href="http://www.iar.com" target="_blank">www.iar.com</a><br>
<<a href="http://www.iar.com" target="_blank">http://www.iar.com</a>> Twitter: <a href="http://www.twitter.com/iarsystems" target="_blank">www.twitter.com/iarsystems</a><br>
<<a href="http://www.twitter.com/iarsystems" target="_blank">http://www.twitter.com/<u></u>iarsystems</a>><br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div>