解開std :: type_info :: name的結果我目前正在研究一些日志代碼,它們應該 - 除其他外 - 打印有關調用函數的信息。這應該相對容易,標準C ++有一個type_info類。它包含typeid'd類/函數/ etc的名稱。但它被破壞了。它不是很有用。即typeid(std::vector<int>).name()回歸St6vectorIiSaIiEE。有沒有辦法從中產生有用的東西?就像std::vector<int>上面的例子一樣。如果它只適用于非模板類,那也沒關系。該解決方案應該適用于gcc,但如果我可以移植它會更好。這是為了記錄所以它不是那么重要,它不能被關閉,但它應該有助于調試。
3 回答

HUH函數
TA貢獻1836條經驗 獲得超4個贊
這就是我們使用的。HAVE_CXA_DEMANGLE僅在可用時設置(僅限最新版本的GCC)。
#ifdef HAVE_CXA_DEMANGLEconst char* demangle(const char* name){ char buf[1024]; unsigned int size=1024; int status; char* res = abi::__cxa_demangle (name, buf, &size, &status); return res; }#elseconst char* demangle(const char* name){ return name;}#endif
- 3 回答
- 0 關注
- 1179 瀏覽
添加回答
舉報
0/150
提交
取消