Boost logo

Boost Users :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2006-05-23 21:41:05

Andreas Sæbjørnsen wrote:

> Using the 'samples/cpp_tokens' example preprocessor with the
> following code:
> #define true 1
> #define false 0
> gives the following error:
> test.C(1): error: ill formed preprocessor directive: #define
> Preprocessing the same file with 'cpp' give no error. If any
> of the two lines in the file is removed the other line will
> cause an error. I guess the error occurs because 'true' is
> not an T_IDENTIFIER, but a T_TRUE. Could you imagine a clean
> fix to this issue?

You're right it's because T_TRUE and T_FALSE are not plain identifiers but
C++ keywords and the token category used by Wave does reflect that. This
problem additionally occurred at other places (such as #undef true) but all
of them are fixed in CVS now (CVS::HEAD and CVS::RELEASE_1_34). A
corresponding test case has been added.

Thanks for reporting!
Regards Hartmut

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at