При создании функции шаблона в 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. поведение барана. Поэтому для некоторых вещей я хочу вывести информацию о том, какие функции выполнялись. Это не слишком важно, поэтому, если решение слишком сложное, я бы пропустил добавление этой информации в свою функцию ведения журнала. Но если бы существовал простой способ сделать это, информация была бы полезной.