[comp.lang.c++] Problem: Texas Instruments C Preprocessor.

lightw@cetra.trl.OZ.AU (Liron Lightwood) (06/25/91)

We are having some problems with the Texas Instruments COOL C
Preprocessor (the one which has templates and parameterised types).  The
problem typically arises when trying to compile libraries (eg
InterViews) which prepend a prefix to internal classnames to limit
namespace polution.

The problem can be demonstrated by passing the following file 
through the COOL Preprocessor.

-------------------------------------------------------- 
#define Coord www(Coord) 
#define www(qqq) iv##qqq

www(Coord);
Coord; 
------------------- end of file
## represents token concatination as proposed for the draft ANSI C
standard.

These libraries expect cpp to behave in such a way as to produce the
following output from this file.

ivCoord;
ivCoord;

However, the COOL C Preprocessor produces the following results:

ivivCoord;
ivCoord;

which is not desired.

What is causing this problem, and how can it be cured?  Another
question is why does the first expression stop at ivivCoord, why not
iviviviviviv........?

thanks in advance.

Liron Lightwood                     Internet : r.lightwood@trl.oz.au
Telecom Research Laboratories       Phone : +61 3 541 6658
770 Blackburn Road                  Snail : P.O. Box 249 Clayton 3168 Australia
Clayton  Vic. 3168 Australia        Disclaimer : My views are not my company's?