apparently MSVC has no problem binding temporaries to lvalue references... why yes, of course, let's break the most basic building blocks of the language
@mew27 The naming convention is terrible for the value categories, there is a better categorization with a W shaped graph, but I can't quite find it right now...
This case though is pretty simple, lvalue is so your run of the mill variables (or function parameters), and a temporary is just a temporary, that's going to be destroyed before the next "statement". According to the language standard it's an insta-dangling reference and is forbidden. Like this:
int& x = 1;