"Joseph S. Myers" <jos...@codesourcery.com> writes:
> On Sun, 1 Sep 2013, Richard Sandiford wrote:
>
>>   like to get rid of them and just keep the genuine operators.  The problem
>>   is that I'd have liked the AND routine to be "wi::and", but of course that
>>   isn't possible with "and" being a keyword, so I went for "wi::bit_and"
>>   instead.  Same for "not" and "wi::bit_not", and "or" and "wi::bit_or".
>>   Then it seemed like the others should be bit_* too, and "wi::bit_and_not"
>>   just seems a bit unwieldly...
>> 
>>   Hmm, if we decide to forbid the use of "and" in gcc, perhaps we could
>>   #define it to something safe.  But that would probably be too confusing.
>
> "and" in C++ is not a keyword, but an alternative token (like %> etc.).  
> As such, it can't be defined as a macro, or used as a macro name in 
> #define, #ifdef etc., and does not get converted to 0 in #if conditions 
> but is interpreted as an operator there.

Ah, thanks, hadn't realised that.  In some ways I'm glad that such a bad
idea would fail to work :-)

Richard

Reply via email to