title: What is C++20's string literal operator template?
body: <p>What is C++20's string literal operator template? Cppreference's <a href="https://en.cppreference.com/w/cpp/language/user_literal" rel="noreferrer">example</a> in this respect is quite concise and not very clear to me:</p>
  
  <pre><code>struct A { A(const char *); auto operator&lt;=&gt;(const A&amp;) const = default; };
  
  template&lt;A a&gt; A operator ""_a(); 
  </code></pre>
  
  <p>In trying to understand what this feature is I've just learned that you can have <em>numeric literal operator templates</em> in C++, which make each digit of numerical constant be passed as a non-type argument to a template (cf. a better explanation <a href="https://stackoverflow.com/questions/39798264/literal-operator-template-why-not-string">here</a>). Currently, literal operator templates do not work with character literals, though there are compilers extensions enabling that. I don't think C++20's  <strong><em>string</strong> literal operator templates</em> have anything to do with that as I've learned that proposals to extend literal operator templates to work with character literals were voted down in the commitee?</p>