enforce()?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Jun 28 11:31:46 PDT 2010


Michel Fortin wrote:
> On 2010-06-28 07:17:53 -0400, Andrei Alexandrescu 
> <SeeWebsiteForEmail at erdani.org> said:
> 
>> On 06/28/2010 03:15 AM, Norbert Nemec wrote:
>>> On 19/06/10 22:46, Andrei Alexandrescu wrote:
>>>> On 06/19/2010 03:55 PM, bearophile wrote:
>>>>> Inside Phobos2 I have counted about 160 usages of the "body" keyword.
>>>>> I think contract programming can be used more often inside Phobos2
>>>>> (and maybe some usages of enforce() can be turned into contract
>>>>> programming because they are more similar to program sanity checks).
>>>>
>>>> Walter and I discussed this and concluded that Phobos should handle its
>>>> parameters as user input. Therefore they need to be scrubbed with hard
>>>> tests, not contracts.
>>>
>>> IMHO, this is plain wrong!
>>>
>>> By this kind of decision, you are putting the library user under
>>> tutelage. The D language is explicitly designed to allow the user to
>>> take off the safety belt, but to do so at their own responsibility.
>>
>> C APIs also check their arguments.
> 
> With C you don't have the option to turn the checks on or off.

#define NDEBUG


Andrei


More information about the Digitalmars-d mailing list