Topic: SunC++ bug or valid C++ template code?


Author: schmidt@tango.cs.wustl.edu (Douglas C. Schmidt)
Date: 21 Feb 1995 19:24:06 -0600
Raw View
Hi,

 The following C++ code is giving my compilers (SunC++ 4.0.1
and GCC 2.6) fits.

----------------------------------------
template <class SYNCH>
class Foo
{
public:
  static SYNCH::MUTEX lock;
};

class Synch
{
  typedef int MUTEX;
  typedef int COND;
};

template <class SYNCH>
SYNCH::MUTEX Foo<SYNCH> lock;
----------------------------------------

SunC++ 4.0.1 complains:

y.C", line 15: Error: :: is not a class name as required for a qualifer.
"y.C", line 15: Error: Templates can only declare classes or functions.
2 Error(s) detected.

whereas GCC complains:

y.C:15: parse error before `<'

This seems like it should be valid code.  Is there some reason in the
why it would be invalid?

Thanks,

 Doug
--
Dr. Douglas C. Schmidt    (schmidt@cs.wustl.edu)
Department of Computer Science, Washington University
St. Louis, MO 63130. Work #: (314) 935-7538; FAX #: (314) 935-7302
http://www.cs.wustl.edu/~schmidt/