How to determine programmatically if an expression is rvalue or lvalue in C++?
问题 What's the best way to determine if an expression is a rvalue or lvalue in C++? Probably, this is not useful in practice but since I am learning rvalues and lvalues I thought it would be nice to have a function is_lvalue which returns true if the expression passed in input is a lvalue and false otherwise. Example: std::string a("Hello"); is_lvalue(std::string()); // false is_lvalue(a); // true 回答1: Most of the work is already done for you by the stdlib, you just need a function wrapper: