https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71547
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- That's not a valid use of std::result_of. Func2 is the type of a function that takes an int* argument and returns a Func1. To use it with result_of you need to ask what the type would be if you called a Func2 with an argument of type int* i.e. result_of<Func2(int*)>::type (and the answer would be Func1, because that's what a Func2 returns when called with an int*).