title: C++20 with u8, char8_t and std::string
body: <p>C++11 brought us the u8 prefix for UTF-8 literals and I thought that was pretty cool a few years ago and peppered my code with things like this:</p>
  
  <pre><code>std::string myString = u8"●";
  </code></pre>
  
  <p>This is all fine and good, but the issue comes up in C++20 it doesn't seem to compile anymore because u8 creates a char8_t* and this is incompatible with std::string which just uses char.</p>
  
  <p>Should I be creating a new utf8string? What's the consistent and correct way to do this kind of thing in a C++20 world where we have more explicit types that don't really match with the standard std::string?</p>