// Origin: PR c++/42634 // { dg-options "-g -std=c++0x" } // { dg-do compile } template T declval(); template struct is_constructible { template static decltype(T1(declval()...), char()) test(); static const bool value = sizeof(test()) == 1; }; template struct enable_if { typedef void type; }; template struct pair { template::value>::type > pair(const T1&, U2&&) { } }; struct string { string() : p(0) {} char* p; }; struct Foo { string s; int i; }; void f() { pair(1, Foo()); }