3

C++ヘッダーをC++スケルトンファイルに変換するためのlibtoolingを使用して、C++で小さなソフトウェアを作成しています。

非テンプレート クラスでは問題なく動作しますが、テンプレート クラス、特にテンプレート クラスのコンストラクタまたはデストラクタで問題が発生しています。

CXXMethodDecl::getNameAsString関数の名前を取得するために使用しています。次のような非テンプレート クラスの場合

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

前の関数は、(予想どおり)C~C.

ただし、クラスが次のようなテンプレートの場合:

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

結果として : C<TT, N>andが得られます~C<TT, N>が、これは私が期待していたものではありません。私にとって、関数の名前は、テンプレートであるクラスに依存するべきではありません。従来の関数は、期待どおりに動作します (どちらの場合も同じ名前です)。

何か不足していますか?これは正常な動作ですか、それともバグですか?

4

0 に答える 0