* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / sfinae44.C
blobbbcae622630410aea9c3b7629afeccfe2278b0b4
1 // PR c++/56913
2 // { dg-do compile { target c++11 } }
4 template<typename T>
5 T &&declval();
7 template<typename T, typename U,
8          typename = decltype((declval<T>().*declval<U>())())>
9 constexpr bool test(int)
11   return true;
14 template<typename T, typename U>
15 constexpr bool test(...)
17   return false;
20 struct S
21 {};
23 static_assert(!test<S, void (S::*)() &>(0), "");
24 static_assert(test<S, void (S::*)() &&>(0), "");
25 static_assert(test<S &, void (S::*)() &>(0), "");
26 static_assert(!test<S &, void (S::*)() &&>(0), "");