http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-05-22 21:23:12 UTC --- It would be wrong though, consider: struct F { int operator(); void operator() const; }; the decltype would detect the return type as 'int' but the function body would return void, because _M_f is const