]> gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/g++.dg/cpp0x/alias-decl-40.C
PR c++/92590 - wrong handling of inherited default ctor.
[gcc.git] / gcc / testsuite / g++.dg / cpp0x / alias-decl-40.C
1 // PR c++/58170
2 // { dg-require-effective-target c++11 }
3 // { dg-prune-output "not declared" }
4 // { dg-prune-output "expected" }
5
6 template <typename T, typename U>
7 struct base {
8 template <typename V>
9 struct derived;
10 };
11
12 template <typename T, typename U>
13 template <typename V>
14 struct base<T, U>::derived : public base<T, V> {
15 };
16
17 // This (wrong?) alias declaration provokes the crash.
18 template <typename T, typename U, typename V>
19 using alias = base<T, U>::derived<V>; // { dg-error "template|typename" }
20
21 // This one works:
22 // template <typename T, typename U, typename V>
23 // using alias = typename base<T, U>::template derived<V>;
24
25 template <typename T>
26 void f() {
27 alias<T, bool, char> m{};
28 (void) m;
29 }
30
31 int main() {
32 f<int>();
33 }
This page took 0.038454 seconds and 5 git commands to generate.