view gcc/testsuite/g++.dg/template/using16.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do compile }

template <class T>
struct A
{
    typedef T type;
};

template <class T>
struct B
{
    class type
    {
	type(); // { dg-message "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" }
};