Я пишу небольшое программное обеспечение на C ++ с libtooling преобразовать заголовки 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>
что не то, что я ожидал.
Для меня имя функции не должно зависеть от класса, являющегося шаблоном. Классические функции ведут себя так, как я ожидаю (одно и то же имя в обоих случаях).
Я что-то пропустил ? Это нормальное поведение или ошибка?
Задача ещё не решена.
Других решений пока нет …