public static StringWrapper cppTranslateFunctionName(MethodSlot function, boolean qualifyP) {
    { Symbol functionname = Symbol.yieldRenamedNameIfNative(function.slotName, Stella.KWD_CPP, Stella.KWD_FUNCTION);
      String translatedname = null;

      if (MethodSlot.cppMethodObjectIsOverloadedFunctionP(function)) {
        functionname = Symbol.cppCreateOverloadedFunctionName(functionname, function.slotOwner);
      }
      translatedname = Symbol.cppTranslateName(functionname).wrapperValue;
      if (function.methodSetterP) {
        translatedname = translatedname + "_setter";
      }
      if (MethodSlot.slotReaderP(function)) {
        translatedname = translatedname + "_reader";
      }
      if (qualifyP) {
        return (StringWrapper.wrapString(Stella.cppYieldQualifiedName(translatedname, Symbol.cppFixupNameSymbol(function.slotName, function.homeModule()))));
      }
      else {
        return (StringWrapper.wrapString(translatedname));
      }
    }
  }