blob: 04aa117b29dd2115d996caf4c78d1759901ee5ce [file] [log] [blame]
Richard Smithb5eb3f52013-05-17 02:19:35 +00001// RUN: %clang_cc1 -std=c++11 %s -verify
2
3// expected-no-diagnostics
4
5namespace 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}
Stephen Hines6bcf27b2014-05-29 04:14:42 -070029
30namespace WrongIdent {
31 struct A {};
32 struct B : A {};
33 struct C : B {
34 using B::A;
35 };
36}