summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C
blob: 03b879433b5890f2d4c704efb030f7616907b494 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// { dg-do assemble  }
// by Alexandre Oliva <oliva@dcc.unicamp.br>
// Based on a testcase by Reid M. Pinchback <reidmp@MIT.EDU>
// According to the C++ Standard [temp.expl.spec]/17-18, explicit
// specializations are only valid if all enclosing template classes
// of the specialized template are fully specialized too

template <class X> 
class bug {
  template <class Y> 
  class a {}; 
};
template <class X> 
template <>			// { dg-error "" } invalid specialization
class bug<X>::a<char> {};	// { dg-error "" }