typeinfohelper.cpp

来自「这是国外的resip协议栈」· C++ 代码 · 共 54 行

CPP
54
字号
#include <cppunit/Portability.h>#include <cppunit/extensions/TypeInfoHelper.h>#if CPPUNIT_HAVE_RTTI#include <string>#if CPPUNIT_HAVE_GCC_ABI_DEMANGLE#include <cxxabi.h>#endifCPPUNIT_NS_BEGINstd::string TypeInfoHelper::getClassName( const std::type_info &info ){#if defined(CPPUNIT_HAVE_GCC_ABI_DEMANGLE)  &&  CPPUNIT_HAVE_GCC_ABI_DEMANGLE  int status = 0;  char* c_name = 0;  c_name = abi::__cxa_demangle( info.name(), 0, 0, &status );    std::string name( c_name );  free( c_name );  #else   // CPPUNIT_HAVE_GCC_ABI_DEMANGLE  static std::string classPrefix( "class " );  std::string name( info.name() );  // Work around gcc 3.0 bug: strip number before type name.  unsigned int firstNotDigitIndex = 0;  while ( firstNotDigitIndex < name.length()  &&          name[firstNotDigitIndex] >= '0'  &&          name[firstNotDigitIndex] <= '9' )    ++firstNotDigitIndex;  name = name.substr( firstNotDigitIndex );  if ( name.substr( 0, classPrefix.length() ) == classPrefix )    return name.substr( classPrefix.length() );#endif  // CPPUNIT_HAVE_GCC_ABI_DEMANGLE  return name;}CPPUNIT_NS_END#endif // CPPUNIT_HAVE_RTTI

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?