refactoring for the result type of basic_string::operator+(Char)