00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ARCHON_UTILITIES_CXX_DEMANGLE_H
00021 #define ARCHON_UTILITIES_CXX_DEMANGLE_H
00022
00023 #include<typeinfo>
00024 #include<string>
00025
00026 namespace Archon
00027 {
00028 namespace Utilities
00029 {
00030 using namespace std;
00031
00041 string cxxDemangle(string mangledName);
00042
00043 template<typename T> string cxxDemangledType()
00044 {
00045 return cxxDemangle(typeid(T).name());
00046 }
00047
00048 template<typename T> string cxxDemangledType(T &t)
00049 {
00050 return cxxDemangle(typeid(t).name());
00051 }
00052 }
00053 }
00054
00055 #endif // ARCHON_UTILITIES_CXX_DEMANGLE_H