I'm pretty sure the value category of integer, character, boolean and floating point literals is prvalue.
User defined literals are like function calls, so their value category depends on the return type of the operator function they resolve to.
I'm not clear on string literals. They have type "array of const charx" where charx is some character type.
It says in 3.10:
The value of a literal ... is also a prvalue.
But I think this might not apply to string literals?
What is the value category of a string literal? How did you determine this?
See Question&Answers more detail:os