https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67633
--- Comment #1 from Felix Morgner <felix.morgner at gmail dot com> --- The same holds true for GCC 7.1 and the deduced type for decltype(auto): #include <iostream> #include <type_traits> struct s{int v{};}; decltype(auto) f() { return (s{}.v); } int main() { std::cout << std::is_same<int &&, decltype(f())>{} << '\n'; } prints 0 instead of 1.