1 typedid
C++ typeid运算符:获取类型信息 http://c.biancheng.net/view/2301.html
怎样在C++中获得完整的类型名称 - zfyouxi - 博客园 https://www.cnblogs.com/zfyouxi/p/5060288.html
2 信息解析
mangle和demangle - 巴黎河畔 - 博客园 https://www.cnblogs.com/robinex/p/7892795.html
3 给出一个例子
//log.h
#ifndef __LOG_H__
#define __LOG_H__
#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <unistd.h>
#include <typeinfo> // typeid need
#include <cxxabi.h> // abi need
// get class name
static int demangle_status; //注意这里必须是static,否则会运行时报错多重定义
#define __CLASS__ __class__
#define __class__ abi::__cxa_demangle(typeid(*this).name(), 0, 0, &demangle_status)
#endif