我想獲取類型名稱並打印出來用於調試目的。我使用下面的代碼:在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進行字符串處理?
請一次提出一個問題。 –