Conditional compilation inside asm and enum declarations

Lutger lutger.blijdestijn at gmail.com
Wed Jul 15 11:29:07 PDT 2009


grauzone wrote:

> Walter Bright wrote:
>> Bill Baxter wrote:
>>> On Tue, Jul 14, 2009 at 5:13 PM, Walter
>>> Bright<newshound1 at digitalmars.com> wrote:
>>>> Why do C and C++ (and D) make it difficult to do:
>>>>
>>>>   char *p;
>>>>   p |= 1;
>>>>
>>>> ? There's no implementation difficulty in accepting such and generating
>>>> correct code for it. It's purely a matter of making what is generally
>>>> considered to be bad practice harder to do. I've never heard anyone
>>>> argue
>>>> that this was a bad decision.
>>>
>>> I've never ever needed to do that, or been the slightest bit tempted
>>> to.  The operation doesn't make sense.  So I think the analogy is
>>> inappropos.
> 
> Often I wanted to write p &= ~3 in low level code. And that does make
> sense, because it aligns the pointer.
> 
>> The #ifndef NO_DEBUGGING is awful. The #ifndef __GNUC__ means compile
>> for every unknown compiler ever, except gcc. Can't possibly be right.
> 
> The #ifndef NO_DEBUGGING causes the code to be compiled in debugging
> mode, if it isn't explicitly deactivated. This is a good thing. I think
> dmd should compile in debug mode too, and force the user to pass
> -nodebug to disable it.

So that reads as: 

if not not actived then if not defined no debugging then do stuff

nice!




More information about the Digitalmars-d mailing list