why must use const reference when reference to literals
问题 I know only object could have reference. But literals are not object. So I could understand why following code cannot compile: int &a = '4'; int &b = 2; However, when I add const in front of them, it could work!! const int &a = '4'; const int &b = 2; I do not know why. Could anyone help me? 回答1: A integer or character literal is a prvalue [expr.prim.general] A literal is a primary expression. Its type depends on its form (2.13). A string literal is an lvalue; all other literals are prvalues.