aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8.1/gcc/testsuite/g++.dg/parse/typename6.C
blob: dc458bee558353b0d217bc0727572fd7cada83e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// { dg-do compile }
// Contributed by Matt Austern <austern at apple dot com>
// PR c++/13407: Gracefully handle keyword typename in base class specifier.

struct A { };
struct B { typedef A Type; };

template <typename T>
struct X : 
  public typename T::Type  // { dg-error "not allowed in this context" }
{ };

X<B> x;

struct C : 
  public typename A        // { dg-error "not allowed outside of templates" }
{ };