http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46719
--- Comment #7 from Kohei Takahashi <flast at flast dot jp> 2010-12-01 00:30:45 UTC --- (In reply to comment #6) > Even though the template parameter pack Args expands to double, GCC is unable > to match f to the type function<int(double)> if I use Args..., where it was > able to with the first example where I used double explicitly. It seems different issue. At least initially report is not a bug. You should write new bug report, correct this report or find similar bug reports. Most simple issue code is following: template < typename... > struct S { S( int ); }; template < typename... T > void f( S< T... > ); void g( void ) { f< int >( 0 ); }