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