view gcc/testsuite/g++.old-deja/g++.oliva/template10.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 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|variable)" }