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