22 inline static std::string
value()
24 std::string result =
typeid(ObjectType).name();
25#ifdef VTK_HAS_CXXABI_DEMANGLE
28 char* demangledSymbol = abi::__cxa_demangle(result.c_str(),
nullptr, &size, &status);
29 if (!status && size > 0)
31 result = demangledSymbol;
33 free(demangledSymbol);
38#ifdef VTK_COMPILER_MSVC
43 for (std::string::size_type pos = result.find(
"class "); pos != std::string::npos;
44 pos = result.find(
"class ", pos + 1))
46 result = result.substr(0, pos) + result.substr(pos + 6);
48 for (std::string::size_type pos = result.find(
"struct "); pos != std::string::npos;
49 pos = result.find(
"struct ", pos + 1))
51 result = result.substr(0, pos) + result.substr(pos + 7);
56 for (std::string::size_type pos = result.find(
"`anonymous namespace'");
57 pos != std::string::npos; pos = result.find(
"`anonymous namespace'", pos + 1))
59 result = result.substr(0, pos) +
"(anonymous namespace)" + result.substr(pos + 21);
63 for (std::string::size_type pos = result.find(
','); pos != std::string::npos;
64 pos = result.find(
',', pos + 1))
66 result = result.substr(0, pos) +
", " + result.substr(pos + 1);