При создании функции шаблона в C ++ существует простой способ, чтобы имя типа шаблона было представлено в виде строки?У меня есть простой тестовый пример, чтобы показать, что я пытаюсь сделать (обратите внимание, что указанный код не компилируется):
#include <stdio.h>
template <typename type>
type print(type *addr)
{
printf("type is: %s",type);
}
int main()
{
int a;
print(&a);
}
// Would like to print something like:
// type is: int
Я думаю, что имя типа должно быть доступно во время компиляции, когда создается экземпляр функции, но я не очень знаком с шаблонами, и я не видел способа получить имя типа в виде строки.
Причина, по которой я хочу сделать это, для некоторой отладки типа printf.У меня есть несколько потоков, работающих и GDB меняет поведение программы.Поэтому для некоторых вещей я хочу получить информацию о том, какие функции выполнялись.Это не так важно, поэтому, если решение слишком сложное, я бы пропустил добавление этой информации в свою функцию регистрации.Но если бы был простой способ сделать это, было бы полезно иметь информацию.