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 30 namespace WrongIdent { 31 struct A {}; 32 struct B : A {}; 33 struct C : B { 34 using B::A; 35 }; 36 } 37