Я хочу получить имя типа и распечатать его в целях отладки.Я использую следующий код:
#include <cxxabi.h>
inline const char* demangle(const char *s) {
abi::__cxa_demangle(s, 0, 0, NULL);
}
template<typename T>
inline const char* type_name() {
return demangle(typeid(T).name());
}
Он работает хорошо, но я полагаю, что это лишние затраты времени выполнения.Есть ли способ получить читабельную форму идентификаторов типов, которая вычисляется во время компиляции?Я думаю о чем-то, что выглядит следующим образом:
boost::mpl::type_name<MyType>::value
, который вернул бы строковую константу имени типа.
Как (не так строго) связанный вопрос: возможновыполнять обработку строк с помощью boost :: mpl?