http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52748
--- Comment #10 from Jason Merrill <jason at gcc dot gnu.org> 2013-03-28 13:36:07 UTC --- The implementation is complete. Unfortunately, my fixes for DRs 337 and 657 are interfering with the desired result; creating a function type returning an abstract class causes deduction to fail, so we instantiate the return type of wrap in order to determine whether it is abstract. I guess I'll disable that instantiation and raise this issue with Core...