https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86980
--- Comment #3 from Neeraj <neeraj.sharma at alumni dot iitg.ernet.in> --- Ah! Alright so the following two code snippets are equivalent. // -- auto f = []() { Traceable tmp; return std::move(tmp); }; // --- auto f = []() -> Traceable { Traceable tmp; return std::move(tmp); }; // x--