870   char* operator_string_begin = 
const_cast<char*
>( 
strstr( demangled_symbol, 
"operator" ) );
 
  871   if ( operator_string_begin != NULL ) {
 
  872     char* operator_string_end = operator_string_begin + 8;
 
  873     while ( *operator_string_end == 
' ' ) operator_string_end++;
 
  874     if ( 
strstr( operator_string_end, 
"delete[]" ) == operator_string_end ) {
 
  875       operator_string_end += 8;
 
  876       *operator_string_end = 
'\0';
 
  877     } 
else if ( 
strstr( operator_string_end, 
"delete" ) == operator_string_end ) {
 
  878       operator_string_end += 6;
 
  879       *operator_string_end = 
'\0';
 
  880     } 
else if ( 
strstr( operator_string_end, 
"new[]" ) == operator_string_end ) {
 
  881       operator_string_end += 5;
 
  882       *operator_string_end = 
'\0';
 
  883     } 
else if ( 
strstr( operator_string_end, 
"new" ) == operator_string_end ) {
 
  884       operator_string_end += 3;
 
  885       *operator_string_end = 
'\0';
 
  886     } 
else if ( 
strstr( operator_string_end, 
">>=" ) == operator_string_end ) {
 
  887       operator_string_end += 3;
 
  888       *operator_string_end = 
'\0';
 
  889     } 
else if ( 
strstr( operator_string_end, 
"<<=" ) == operator_string_end ) {
 
  890       operator_string_end += 3;
 
  891       *operator_string_end = 
'\0';
 
  892     } 
else if ( 
strstr( operator_string_end, 
"->*" ) == operator_string_end ) {
 
  893       operator_string_end += 3;
 
  894       *operator_string_end = 
'\0';
 
  895     } 
else if ( 
strstr( operator_string_end, 
"<<" ) == operator_string_end ) {
 
  896       operator_string_end += 2;
 
  897       *operator_string_end = 
'\0';
 
  898     } 
else if ( 
strstr( operator_string_end, 
">>" ) == operator_string_end ) {
 
  899       operator_string_end += 2;
 
  900       *operator_string_end = 
'\0';
 
  901     } 
else if ( 
strstr( operator_string_end, 
">=" ) == operator_string_end ) {
 
  902       operator_string_end += 2;
 
  903       *operator_string_end = 
'\0';
 
  904     } 
else if ( 
strstr( operator_string_end, 
"<=" ) == operator_string_end ) {
 
  905       operator_string_end += 2;
 
  906       *operator_string_end = 
'\0';
 
  907     } 
else if ( 
strstr( operator_string_end, 
"==" ) == operator_string_end ) {
 
  908       operator_string_end += 2;
 
  909       *operator_string_end = 
'\0';
 
  910     } 
else if ( 
strstr( operator_string_end, 
"!=" ) == operator_string_end ) {
 
  911       operator_string_end += 2;
 
  912       *operator_string_end = 
'\0';
 
  913     } 
else if ( 
strstr( operator_string_end, 
"|=" ) == operator_string_end ) {
 
  914       operator_string_end += 2;
 
  915       *operator_string_end = 
'\0';
 
  916     } 
else if ( 
strstr( operator_string_end, 
"&=" ) == operator_string_end ) {
 
  917       operator_string_end += 2;
 
  918       *operator_string_end = 
'\0';
 
  919     } 
else if ( 
strstr( operator_string_end, 
"^=" ) == operator_string_end ) {
 
  920       operator_string_end += 2;
 
  921       *operator_string_end = 
'\0';
 
  922     } 
else if ( 
strstr( operator_string_end, 
"%=" ) == operator_string_end ) {
 
  923       operator_string_end += 2;
 
  924       *operator_string_end = 
'\0';
 
  925     } 
else if ( 
strstr( operator_string_end, 
"/=" ) == operator_string_end ) {
 
  926       operator_string_end += 2;
 
  927       *operator_string_end = 
'\0';
 
  928     } 
else if ( 
strstr( operator_string_end, 
"*=" ) == operator_string_end ) {
 
  929       operator_string_end += 2;
 
  930       *operator_string_end = 
'\0';
 
  931     } 
else if ( 
strstr( operator_string_end, 
"-=" ) == operator_string_end ) {
 
  932       operator_string_end += 2;
 
  933       *operator_string_end = 
'\0';
 
  934     } 
else if ( 
strstr( operator_string_end, 
"+=" ) == operator_string_end ) {
 
  935       operator_string_end += 2;
 
  936       *operator_string_end = 
'\0';
 
  937     } 
else if ( 
strstr( operator_string_end, 
"&&" ) == operator_string_end ) {
 
  938       operator_string_end += 2;
 
  939       *operator_string_end = 
'\0';
 
  940     } 
else if ( 
strstr( operator_string_end, 
"||" ) == operator_string_end ) {
 
  941       operator_string_end += 2;
 
  942       *operator_string_end = 
'\0';
 
  943     } 
else if ( 
strstr( operator_string_end, 
"[]" ) == operator_string_end ) {
 
  944       operator_string_end += 2;
 
  945       *operator_string_end = 
'\0';
 
  946     } 
else if ( 
strstr( operator_string_end, 
"()" ) == operator_string_end ) {
 
  947       operator_string_end += 2;
 
  948       *operator_string_end = 
'\0';
 
  949     } 
else if ( 
strstr( operator_string_end, 
"++" ) == operator_string_end ) {
 
  950       operator_string_end += 2;
 
  951       *operator_string_end = 
'\0';
 
  952     } 
else if ( 
strstr( operator_string_end, 
"--" ) == operator_string_end ) {
 
  953       operator_string_end += 2;
 
  954       *operator_string_end = 
'\0';
 
  955     } 
else if ( 
strstr( operator_string_end, 
"->" ) == operator_string_end ) {
 
  956       operator_string_end += 2;
 
  957       *operator_string_end = 
'\0';
 
  958     } 
else if ( 
strstr( operator_string_end, 
"<" ) == operator_string_end ) {
 
  959       operator_string_end += 1;
 
  960       *operator_string_end = 
'\0';
 
  961     } 
else if ( 
strstr( operator_string_end, 
">" ) == operator_string_end ) {
 
  962       operator_string_end += 1;
 
  963       *operator_string_end = 
'\0';
 
  964     } 
else if ( 
strstr( operator_string_end, 
"~" ) == operator_string_end ) {
 
  965       operator_string_end += 1;
 
  966       *operator_string_end = 
'\0';
 
  967     } 
else if ( 
strstr( operator_string_end, 
"!" ) == operator_string_end ) {
 
  968       operator_string_end += 1;
 
  969       *operator_string_end = 
'\0';
 
  970     } 
else if ( 
strstr( operator_string_end, 
"+" ) == operator_string_end ) {
 
  971       operator_string_end += 1;
 
  972       *operator_string_end = 
'\0';
 
  973     } 
else if ( 
strstr( operator_string_end, 
"-" ) == operator_string_end ) {
 
  974       operator_string_end += 1;
 
  975       *operator_string_end = 
'\0';
 
  976     } 
else if ( 
strstr( operator_string_end, 
"*" ) == operator_string_end ) {
 
  977       operator_string_end += 1;
 
  978       *operator_string_end = 
'\0';
 
  979     } 
else if ( 
strstr( operator_string_end, 
"/" ) == operator_string_end ) {
 
  980       operator_string_end += 1;
 
  981       *operator_string_end = 
'\0';
 
  982     } 
else if ( 
strstr( operator_string_end, 
"%" ) == operator_string_end ) {
 
  983       operator_string_end += 1;
 
  984       *operator_string_end = 
'\0';
 
  985     } 
else if ( 
strstr( operator_string_end, 
"^" ) == operator_string_end ) {
 
  986       operator_string_end += 1;
 
  987       *operator_string_end = 
'\0';
 
  988     } 
else if ( 
strstr( operator_string_end, 
"&" ) == operator_string_end ) {
 
  989       operator_string_end += 1;
 
  990       *operator_string_end = 
'\0';
 
  991     } 
else if ( 
strstr( operator_string_end, 
"|" ) == operator_string_end ) {
 
  992       operator_string_end += 1;
 
  993       *operator_string_end = 
'\0';
 
  994     } 
else if ( 
strstr( operator_string_end, 
"," ) == operator_string_end ) {
 
  995       operator_string_end += 1;
 
  996       *operator_string_end = 
'\0';
 
  997     } 
else if ( 
strstr( operator_string_end, 
"=" ) == operator_string_end ) {
 
  998       operator_string_end += 1;
 
  999       *operator_string_end = 
'\0';
 
 1001     return operator_string_begin;
 
 1003   char* end_of_demangled_name = 
const_cast<char*
>( 
strrchr( demangled_symbol, 
')' ) );
 
 1004   if ( end_of_demangled_name != NULL ) {
 
 1007     while ( pars > 0 && end_of_demangled_name != demangled_symbol ) {
 
 1008       c = *( --end_of_demangled_name );
 
 1011       } 
else if ( 
c == 
'(' ) {
 
 1016     return demangled_symbol;
 
 1018   char* end_of_func_name = end_of_demangled_name;
 
 1019   if ( end_of_func_name != NULL ) {
 
 1020     *end_of_func_name = 
'\0';
 
 1021     char c            = *( --end_of_func_name );
 
 1024       while ( pars > 0 && end_of_func_name != demangled_symbol ) {
 
 1025         c = *( --end_of_func_name );
 
 1028         } 
else if ( 
c == 
'<' ) {
 
 1032       *end_of_func_name = 
'\0';
 
 1034     c = *( --end_of_func_name );
 
 1035     while ( 
isalnum( 
c ) || 
c == 
'_' || 
c == 
'~' ) { 
c = *( --end_of_func_name ); }
 
 1036     return ++end_of_func_name;
 
 1038   return demangled_symbol;