summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.oliva/template10.C
blob: 5c1204bddcf9aaecc0ed885f7533cf512e9d2612 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// { dg-do assemble  }

// Copyright (C) 1999 Free Software Foundation

// by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
// bug report by Martin Sebor <sebor@roguewave.com>
// based on C++ Standard example in [temp.expl.spec]/5

/* Members of explicitly specialized template classes shall not be
   defined with template-specialization syntax.  The example in the
   Standard contains a definition of a member function of the
   explicitly specialized class template, but the paragraph refers to
   members in general, not only member functions.  */

template<class T> struct A {};

template<> struct A<int> {
  static bool a, b;
};

bool A<int>::a = true; // ok
template<> bool A<int>::b = false; // { dg-error "template header" }