用于模板类构造函数或析构函数的CXXMethodDecl :: getNameAsString

时间:2014-02-16 09:55:24

标签: c++ templates clang llvm llvm-c++-api

我正在使用libtooling在C ++中编写一个小软件,将C ++标题转换为C ++框架文件。

它适用于非模板类,但我遇到了模板类的问题,尤其是模板类的构造函数或析构函数。

我正在使用CXXMethodDecl::getNameAsString来获取该函数的名称。 对于非模板类,如

  struct C
  {
    C();
    ~C();   
    //other stuff
  }

上一个函数给了我(正如我所料)C~C

但如果该类是以下模板:

  template <class TT,int N> 
  struct C
  {
    C();
    ~C();
   }

我得到结果:C<TT, N>~C<TT, N>,这不是我所期待的。 对我来说,函数的名称不应该依赖于作为模板的类。经典函数的行为与我期望的一样(在两种情况下都是相同的名称)。

我错过了什么吗?这是正常行为还是错误?

0 个答案:

没有答案