| 48 | |
| 49 | template <class TStringType> |
| 50 | static void DetachAndFixPointers(TStringType& text, typename TStringType::value_type*& p, const typename TStringType::value_type*& pe) { |
| 51 | const auto pos = p - text.data(); |
| 52 | const auto count = pe - p; |
| 53 | p = text.Detach() + pos; |
| 54 | pe = p + count; |
| 55 | } |
| 56 | |
| 57 | template <class TStringType, typename F> |
| 58 | static bool ModifyStringSymbolwise(TStringType& text, size_t pos, size_t count, F&& f) { |
no test coverage detected