[comp.lang.c++] typedef'ed class declarations

jjg@gzilla.Sun.COM (Jonathan Gibbons) (01/24/90)

One for the language lawyers ...

I have a macro to emulate parameterized types:  param_type(C,T).
It expands into a class declaration such that I can use it as follows

  typedef param_type(List,String) Strings;

which might not be so different from
  typedef List[String] Strings; 
if ever we get parameterized types in C++.

The macro for the above example expands into something like
  typedef class tmp { ... } Strings;


That is fine and works, but it is convenient at one point in one
header to be able to go 
	class Strings;
before the above macro expansion.


cfront is happy to have the two definitions co-exist, g++ isn't.
It seems the typedef in g++ doesn't do what I expected, which was
to declare Strings as the name of the class, as though it were
declared
	typedef Strings { ... }


Am I being optimistic in expecting this to work at all, or is
g++ to be considered at fault?

-- Jon Gibbons
   jjg@sun.com