On Tue, May 21, 2013 at 09:18:15AM +0100, Jonathan Wakely wrote: > This broke due to some front end changes that disallow forming > function types that return abstract types. std::reference_wrapper > always passes an lvalue reference to __invoke so it's correct to use > an lvalue reference as the result_of's template argument. > > PR libstdc++/57336 > * include/std/functional (__invoke): Do not form function types with > abstract return type. > * testsuite/20_util/reference_wrapper/invoke-3.cc: New. > > Tested x86_64-linux, committed to trunk. > > Jakub, this is a regression against 4.8.0, should it go on the branch too? > The change is small and isolated to code used by std::reference_wrapper.
Ok. Jakub