alwaysAssert() [was: Against enforce()]

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Mar 17 15:08:52 PDT 2011


On 03/17/2011 05:03 PM, Walter Bright wrote:
> On 3/17/2011 1:49 PM, dsimcha wrote:
>> == Quote from Walter Bright (newshound2 at digitalmars.com)'s article
>>> On 3/17/2011 12:32 PM, dsimcha wrote:
>>>> I've asked for this before and I'll ask again: Can we **please** put an
>>>> alwaysAssert() function (or an abbreviation of this to make it less
>>>> verbose) in
>>>> Phobos? I proposed this once before and it wasn't well liked for
>>>> some reason
>>>> This reminded me to persist a little about it.
>>> Not always the prettiest, but you can write:
>>> if (!condition) assert(0);
>>> The assert(0) will be replaced with a HLT instruction even in release
>>> mode.
>>
>> This is better than nothing, but not enough to convince me to stop
>> abusing
>> enforce(). I much prefer to have a real alwaysAssert() function that
>> gives a
>> file, a line number and an error message.
>
> if (!condition) { writeln("my message %s %s", __FILE__, __LINE__);
> assert(0); }
>
> I am strongly opposed to using enforce() for bug detection.

There's nothing wrong with encapsulating this idiom (if frequent). 
That's what essentially alwaysAssert does. So you're right but without 
contradicting dsimcha's suggestion.

Andrei


More information about the Digitalmars-d mailing list