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 }
29