| 25 | |
| 26 | template <typename OStream> |
| 27 | void escape_string(OStream& os, const string_view s) { |
| 28 | os << '\''; |
| 29 | for (auto sit = s.begin(); sit != s.end(); ++sit) { |
| 30 | if (*sit == '\'' && (sit == s.begin() || *(sit - 1) != '\\')) { |
| 31 | os << "\\\'"; |
| 32 | } else { |
| 33 | os << *sit; |
| 34 | } |
| 35 | } |
| 36 | os << '\''; |
| 37 | } |
| 38 | } // namespace detail |
| 39 | |
| 40 | template <typename CharT, typename Traits, typename T> |