Рассмотрим следующий код:
int&& x = 42;
static_assert(std::is_same<decltype( x ), int&&>::value, "&&");
static_assert(std::is_same<decltype((x)), int& >::value, "&" );
Итак, каков тип x? Это int&& или int&?
(Я задал себе этот вопрос, прочитав этот ответ.)