Можно ли различать эти два метода? не следует ли мутировать значение rvalue, когда в этом случае кажется вполне допустимым?
TYPE a;
TYPE b = -a; // unary operator- of a TYPE& aka lvalue ref
TYPE c = -(a+b); // unary operator- of a TYPE&& aka rvalue ref