C++
For C++ saying that lvalues are things on which the & operator doesn't throw (and rvalue are things which cause & to throw) is slightly incorrect. After checking the official specification for the language there is a thing called a "qualified-id" that & can operate on, and there is a case where a qualified-id can be a rvalue.