http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52844
--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-15 09:58:06 UTC --- Of course this is also enough: template < class > struct V { }; template < int...Is > void f ( V < Is...>) { } auto g ( ) -> decltype ( f ( V < long > ( ) ) ) ; and decltype and the late specified return type aren't essential.