Traditionally, a literal is an expression denoting a constant whose type and value are evident from its spelling. For example, 42
is a literal, while x
is not since one must see its declaration to know its type and read previous lines of code to know its value.
However, C++11 also added user-defined literals, which are not literals in the traditional sense but can be used as a shorthand for function calls.