title: Are user-defined-literals resolved at compile-time or runtime?
body: <p>I wonder, because predefined literals like <code>ULL</code>, <code>f</code>, etc. are obviously resolved at compile time. The standard (2.14.8 [lex.ext]) doesn't seem to define this, but it seems to tend towards runtime:</p>
  
  <blockquote>
    <p>[2.14.8 / 2]<br>
    A user-defined-literal <strong>is treated as a call to</strong> a literal operator or literal operator template (13.5.8). To
    determine the form of this call for a given user-defined-literal L with ud-suffix X, the literal-operator-id
    whose literal suffix identifier is X is looked up in the context of L using the rules for unqualified name
    lookup (3.4.1). Let S be the set of declarations found by this lookup. S shall not be empty.<br>
    <em>(emphasis mine.)</em></p>
  </blockquote>
  
  <p>However, to me this seems to introduce unnecessary runtime-overhead, as literals can only be appended to values that are available at compile-time anyways like <code>13.37f</code> or <code>"hello"_x</code> (where <code>_x</code> is a user-defined-literal).<br>
  Then, we got the templated user-defined-literal, that never really gets defined in the standard AFAICS (i.e., no example is given, please prove me wrong). Is that function somehow magically invoked at compile time or is it still runtime?</p>