title: "User-defined literal operator not found"
body: <p>I'm reading the CppCoreGuidelines Philosophy, and have found an example that I don't understand. (<a href="https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-philosophy" rel="nofollow noreferrer">https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#S-philosophy</a>)</p>
  
  <p>The codeexample says;</p>
  
  <pre><code>change_speed(double s);   // bad: what does s signify?
  // ...
  change_speed(2.3);
  
  change_speed(Speed s);    // better: the meaning of s is specified
  // ...
  change_speed(2.3);        // error: no unit
  change_speed(23m / 10s);  // meters per second
  </code></pre>
  
  <p>My question is regarding the last line. I'm assuming that the guidelines recommends defining Speed like this;</p>
  
  <pre><code>typedef int Speed;
  </code></pre>
  
  <p>but in the final line in the example they are using m and s as part of the arguments. If I try the same I just get an error saying "user-defined literal operator not found".</p>
  
  <p>How is this supposed to work?</p>