http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56774
Daniel Frey <d.frey at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |d.frey at gmx dot de --- Comment #2 from Daniel Frey <d.frey at gmx dot de> 2013-03-29 00:09:10 UTC --- Here's a reduced testcase without any includes: template< typename... > struct tuple {}; template< typename T, typename... Ts > void f( tuple< T, Ts... >& ) {} int main() { tuple< int, bool, char > t; f< int, char, bool >(t); } This compiles with GCC 4.7.2 and GCC 4.8.0, but it shouldn't. GCC 4.6.3 and Clang 3.2 reject the code as expected. Output from GCC 4.6.3: Compilation finished with errors: source.cpp: In function 'int main()': source.cpp:9:26: error: no matching function for call to 'f(tuple<int, bool, char>&)' source.cpp:9:26: note: candidate is: source.cpp:4:6: note: template<class T, class ... Ts> void f(tuple<T, Ts ...>&)