The type of a literal
is determined based on its form as specified in [lex.literal].
A string-literal is an lvalue
designating a corresponding string literal object ([lex.string]),
a user-defined-literal
has the same value category
as the corresponding operator call expression described in [lex.ext],
and any other literal is a prvalue.