diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/using16.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/using16.C | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/using16.C b/gcc/testsuite/g++.dg/template/using16.C new file mode 100644 index 00000000000..589f7f18f52 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/using16.C @@ -0,0 +1,42 @@ +// { dg-do compile } + +template <class T> +struct A +{ + typedef T type; +}; + +template <class T> +struct B +{ + class type + { + type(); // { dg-error "private" } + }; +}; + +template <class T> +struct C : A<T>, B<T> +{ + using typename B<T>::type; + + void f() + { + type j; // { dg-error "context" } + } +}; + +template class C<int>; // { dg-message "required" } + +template <class T> +struct D +{ + typedef T type; +}; + +template <class T> +class E : D<T> +{ + using typename D<T>::type; // { dg-message "previous" } + using typename D<T>::type; // { dg-error "redeclaration" } +}; |