| OLD | NEW |
| (Empty) |
| 1 // RUN: %clang_cc1 -std=c++11 %s -verify | |
| 2 | |
| 3 // expected-no-diagnostics | |
| 4 | |
| 5 namespace PR15757 { | |
| 6 struct S { | |
| 7 }; | |
| 8 | |
| 9 template<typename X, typename Y> struct T { | |
| 10 template<typename A> T(X x, A &&a) {} | |
| 11 | |
| 12 template<typename A> explicit T(A &&a) | |
| 13 noexcept(noexcept(T(X(), static_cast<A &&>(a)))) | |
| 14 : T(X(), static_cast<A &&>(a)) {} | |
| 15 }; | |
| 16 | |
| 17 template<typename X, typename Y> struct U : T<X, Y> { | |
| 18 using T<X, Y>::T; | |
| 19 }; | |
| 20 | |
| 21 U<S, char> foo(char ch) { return U<S, char>(ch); } | |
| 22 | |
| 23 int main() { | |
| 24 U<S, int> a(42); | |
| 25 U<S, char> b('4'); | |
| 26 return 0; | |
| 27 } | |
| 28 } | |
| OLD | NEW |