Can I print how an expression is being evaluated?
For example if I wanted to find out whether a value was being evaluated as an rvalue or lvalue I'd call the hypothetical code:
int main() {
if(isrvalue(*(int *)4)) return 0;
else return 1;
}
This creates problems as we're discovering below that the 'type' of an expression can depend on whether it's on the right or left side of the assignment operator. So the test would be more suited as
supports_lvalue(*(int *)4)
Although again this is only hypothetical and may be left to just playing around with basic examples.
The reason is only for experimentation but it might be useful in debugging if it's possible.