https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119469
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Or to put it another way: using F = int(); static_assert( not same_as<decltype(declval<F&&>()), F&&> ); static_assert( same_as<decltype(declval<F&&>()), F&> );