我想获取类型名称并打印出来用于调试目的。我使用下面的代码:在C++编译时获取类型名称
#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());
}
它运行良好,但它我认为有不必要的运行时间开销。有没有什么办法可以获得编译时计算出来的类型为ID的人类可读形式?我正在考虑看起来像这样的东西:
boost::mpl::type_name<MyType>::value
这将返回类型名称的字符串常量。
作为一个(不是很严格)相关的问题:是否有可能使用boost :: mpl进行字符串处理?
请一次提出一个问题。 –