Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:09

0001 #ifndef classNameFinder_h
0002 #define classNameFinder_h
0003 
0004 #include <string>
0005 #include <typeinfo>
0006 #include <cxxabi.h>
0007 
0008 template <class T>
0009 std::string classNameFinder(std::string fName) {
0010   int status2 = 0;
0011   char *dm2 = abi::__cxa_demangle(typeid(T).name(), nullptr, nullptr, &status2);
0012   std::string s2 = "failed demangle";
0013   if (status2 == 0) {
0014     s2 = std::string(dm2);
0015   }
0016   return (fName + std::string("< ") + s2 + std::string(" >"));
0017 }
0018 
0019 template <class T>
0020 std::string templateNameFinder() {
0021   int status2 = 0;
0022   char *dm2 = abi::__cxa_demangle(typeid(T).name(), nullptr, nullptr, &status2);
0023   std::string s2 = "failed demangle";
0024   if (status2 == 0) {
0025     s2 = std::string(dm2);
0026   }
0027   return s2;
0028 }
0029 
0030 #endif