http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51501
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |SUSPENDED --- Comment #5 from Jason Merrill <jason at gcc dot gnu.org> 2011-12-19 22:06:03 UTC --- The problem here is that the variadic 'list' is not in scope when the trailing-return-type is parsed. 3.3.2 says, The point of declaration for a name is immediately after its complete declarator and the declarator includes the trailing-return-type. And then since all the arguments are integers, no argument-dependent lookup is done, so the call in the trailing-return-type doesn't find the right template, and fails. The versions of EDG and Clang that I have handy seem to reject this testcase on the same basis. This seems like a flaw in the standard.