1 // Origin: PR c++/42634
3 // { dg-do compile { target c++11 } }
5 template<typename T> T declval();
7 template<typename T, typename... Args> struct is_constructible {
8 template<typename T1, typename... Args1> static decltype(T1(declval<Args1>()...), char()) test();
9 static const bool value = sizeof(test<T, Args...>()) == 1;
11 template<bool> struct enable_if {
14 template<class T1, class T2> struct pair {
16 class = typename enable_if<is_constructible<T2,U2&&>::value>::type
18 pair(const T1&, U2&&) { }
32 pair<int, Foo>(1, Foo());