Andreas Sæbjørnsen wrote:
I think the best soulution would be like you suggested to add the '$' character to the valid basic source character set to allow identifiers containeing a $. I therefore tested out how different major compilers and versions of these compilers handle this. The following compilers and versions of the compilers allow a '$' character within the identifiers (of macros):
gcc 2.95, 3.1, 3.2, 3.3.3, 3.4.3 and 4.0.2 icc (intel c compiler) 8.0, 8.1
I would corroborate for the fact that it seems like there is some traction for allowing '$' characters within identifiers in major compiler preprocessors.
I have not been able to reproduce the error you got with GCC or with any other compiler . Which compiler and version did you use when you got your error message?
I agree with you, that most (if not all) of the existing compilers allow '$' to be used in identifiers. So I decided to (optionally) include this behaviour into Wave as well (and I made it the default behaviour). To maintain the possibility of having a strictly Standards conforming preprocessor it is possible now to configure the Wave library by defining the BOOST_WAVE_USE_STRICT_LEXER constant during compilation, which will revert to the previous behaviour. HTH Regards Hartmut