[LLVMdev] CXXMethodDecl::getNameAsString for template-class' constructor or destructor
Kyle Sluder
kyle at ksluder.com
Tue Feb 18 11:10:38 PST 2014
On Feb 17, 2014, at 12:43 AM, David Come <davidbrcz at gmail.com> wrote:
>
> Hello !
>
> I'm writing a small software to translate header into C++ files. It works fine for non-template class but I'm having n issue with template class, especially with template class's constructor or destructor.
>
> I'm using CXXMethodDecl::getNameAsString to get the name of the function. For a non template class like
>
> struct C
> {
> C();
> ~C();
> //other stuff
> }
> The previous function gives me (as I expect) C and ~C.
>
> But if the class is template like the following:
>
> template <class TT,int N>
> struct C
> {
> C();
> ~C();
> }
> I get as result : C<TT, N> and ~C<TT, N>, which is not what I was expecting.
>
> For me, the name of a function should not be independent of the class being template. Classic functions behave the way I expect (same name in both cases).
>
>
>
> Am I missing something ? Is this the normal behavior or a bug ?
>
I'm new to this myself, but:
1. This sounds like a question better-suited for cfe-dev, not llvmdev.
2. NamedDecl::getNameAsString() is deprecated; use getName() instead.
3. NamedDecl also as getDeclName(), which is documented to return “the actual, stored name of the declaration, which may be a special name.”
--Kyle Sluder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140218/a16fd6e0/attachment.html>
More information about the llvm-dev
mailing list